编程序输入60,输出其素数因子的乘积

来源:百度知道 编辑:UC知道 时间:2024/06/19 06:38:10
输出为60=1*2*2*3*5

先用一个数组保存一定范围的素数有 2 3 5 7 11 13 17 。。。。等等
然后用这个数依次去除以数组中的数,当遇到可整除是,算的结果,在用这个结果依次去除以数组中的数,当遇到可整除是,算的结果,在用这个结果依次去除以数组中的数,当遇到可整除是,算的结果,在用这个结果依次去除以数组中的数,当遇到可整除是,算的结果,在用这个结果依次去除以数组中的数。一直下去--------直到这个数为1.当然你需要另外一个数组去保存那些数

#include<stdio.h>
main()
{
int i,n,m;
int sum;
for(;;){
system("cls");
printf("\n\n输入一个整数:");
scanf("%d",&n);
m=n;sum=1;
if(n<3||n>20000)break;
else
while(m>=2)
{
for(i=2;i<=m/i;i++)
{
if(m%i==0){printf("%d*",i);sum*=i;m=m/i;break;}
}
if(m==2||m==3){printf("%d",m);sum*=m;m=1;break;}
else if(i==m/(i-1)+1){printf("%d*",m);sum*=m;m=1;break;}
}
printf("=%d\n\n",sum);
system("pause");
}
}