将之前一段时间在牛客上刷的题给大家分享一下。其中一道题是“质数因子”,非常的有难度,现在将通过的代码贴一下,供大家参考。
功能:输入一个正整数,按照从小到大的顺序输出它的所有质因子(重复的也要列举)(如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"); }