您的位置:首页 > 其它

正整数分解成质因数

2017-05-12 23:00 691 查看
题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5

一、质因数:素数

二、正整数n分解的思路,先找一个最小的质因数m,

1)若m==n,则分解完毕打印输出,否则2)

2)若m<n,且n%m==0,打印出m的值,除数n/m判断是否能被m整除,若能,重复2),不能则3)

3)m++,执行1)

那么因子为什么不用判断是否为质数呢?因为第2)步的重复执行,把不是质数的数pass掉了,比如20的因子4不是质数,但它已经被2*2取代了

#include <stdio.h>

int main()
{
int n, m;
printf("Input a positive integer: ");
scanf("%d", &n);
printf("%d=", n);

for(m=2; m<=n; m++){
while(n % m == 0){
//if(n==m) break;//注释掉这句,最后的*1才会输出
n = n / m;
printf("%d*", m);
}
}//最终n==1,即m>n,退出循环
printf("%d",n);
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息