#include
int prime(int i) //判断素数
{
int j;
if(i<2)
return -1; //既不是素数也不是合数
for(j=2;j<=i/2;j++)
if(i%j==0)
return 0; //合数
return 1; //素数
}
void factor(int i) //分解质因数
{
int j;
if(prime(i)==0)
{
printf("%d=",i);
for(j=2;j<=i;)
{
if(i%j!=0) //不能被j整除,就让j自加1
{
j++;
}
else //能被j整除,就让i等于被除后的数
{
i=i/j;
printf("%d×",j);
}
}
printf("\b \n"); //退格,把最后的“×”去掉
}
else
printf("%d不是合数,不能分解质因数。\n",i);
}
main()
{
int i,a[10];
printf("请输入10个合数\n");
for(i=0;i<10;i++)
{
printf("a[%d]=",i);
scanf("%d",&a[i]);
}
printf("分解质因数如下:\n");
for(i=0;i<10;i++)
factor(a[i]);
}