将之前一段时间在牛客上刷的题给大家分享一下。其中一道题是“质数因子”,非常的有难度,现在将通过的代码贴一下,供大家参考。
功能:输入一个正整数,按照从小到大的顺序输出它的所有质因子(重复的也要列举)(如180的质因子为2 2 3 3 5 )
最后一个数后面也要有空格
#include <stdlib.h>
#include <stdio.h>
int getResult(long ulDataInput,long *res)
{
int i=0;
int j=0;
int dev = ulDataInput;
for(i=2;i<=ulDataInput;++i)
{
if(dev%i==0)
{
dev=dev/i;
res[j]=i;
j++;
i=1;
}
}
return j;
}
int main()
{
long outputbuf[100]={0};
long inputdata;
scanf("%ld",&inputdata);
int p = getResult(inputdata,outputbuf);
for(int i=0;i<p;i++)
{
printf("%d ",outputbuf[i]);
}
//printf(" \n");
}