C语言,输入一个正整数,按由大到小的顺序输出它的所有质数的因子(如180=5*3*3*2*2)
#include <stdio.h>
#include <stdlib.h>
#include<math.h>
int prime(int y)
{
int i;
if(y==1) return 0;
if(y==2) return 1;
for(i=2;i<y;i++)
{
if(y%i==0)
return 0;
}
return 1;
}
main()
{
int a,i;
scanf("%d",&a);
for(i=a;i>1;i--)
{
if(a%i==0&&prime(i)==1)
{
a=a/i;
printf(" %d " ,i);
i++;
}
else
continue;
}
printf("\n");
system("pause");
}
测试结果:
600
5 5 3 2 2 2
请按任意键继续. . .