声明一int型变量n接收键盘输入并限制为正数。另一int型变量i初值赋2,用i去除n,能被整除则输出i为质因数,并将n赋值为n/i;不能整除则i增1再去除n的新值……如此反复至n==1为止。输出时,在n==1之前增印一个*号表示“乘”。代码如下:
#include "stdio.h"
int main(int argc,char *argv[]){
int n,i;
printf("Input n(int n>0)...\nn=");
if(scanf("%d",&n)!=1 || n<1){//输入并限制大于0
printf("Input error, exit...\n");
return 0;
}
printf("\n%d = ",n);
for(i=2;n>1;){//分解质因数,i从2开始
if(n%i==0){//能被i整除则输出因数i
printf("%d",i);
if((n/=i)>1)//未到最后一个因数则输出一个*号
printf("*");
}
else//不能被i整除则i增1
i++;
}
printf("\n");
return 0;
}
运行样例如下: