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

请按任意键继续. . .