#include<stdio.h>
void main()
{
int x,y,i=2,j=0,m;
printf("输入数字:");
scanf("%d",&x);
m=x;
int a[15]={0};
//设定一个范围足够的数组存放因子
while(i<=x)
{
if((x%i)==0) { x=x/i ;a[j]=i; j++; i=2;}
else i++;
//由于一个数的因子会小于或等于本身,所以可以
//以此设定跳出条件,用遍历的思想去从2开始逐个寻找因子
//如果那个数是因子之一则可以被整除if((x%i)==0)
//以此作为判断条件,而一个数的因子可能会重复
//所以每找到一个就要有重头开始再判断一边
//i=2;就是作为复位的,其实这个程序和算法很简单
//你自己多看两遍就明白了
//如果还有不懂得就直接上我的空间找我好了
}
printf("y=");
if(j==0) printf("%d\n",m);
//这是特殊情况质数
else
{
for(i=0;i<j-1;i++) if(a[i]!=0) printf("%d*",a[i]);
printf("%d\n",a[i]);
}
}
温馨提示:答案为网友推荐,仅供参考