如何将一个数分解质因数呢? 就是直接一个for循环下标i从2开始如果这个数能整除i就不断整除i然后记录,直到这个数为1时停止这样就可以达到分解质因数的目的了。 代码如下:
#include<stdio.h>#include<string.h>#include<math.h>int main(void){ int n,i,j,k,a; int ans[1000],top; while(~scanf("%d",&n) && n >= 0) { top = 0;a = n; for(i=2;i<=n;i++)//这里不能循环到a,因为a在循环里面发生变化。 { while(a % i == 0)//如果能整除就一直除下去 { ans[++top] = i; a /= i; } } PRintf("%d = ",n); for(i=1;i<top;i++) printf("%d * ",ans[i]); printf("%d/n",ans[top]); } return 0;}这种算法在遇到大数是就会变得非常的慢。
新闻热点
疑难解答