方法一
//【程序11】
//题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
#include<stdio.h>
int main()
{
int n,i;
scanf("%d",&n);
printf("%d=",n);
for(i=2;i<=n;i++)
{
while(n!=i) //巧妙在这,for里边套了个while,保证重复的i了
{
if(n%i==0) //不用判断是 质数,因为都是从最小的2开始不断整除的,
{ //只要 是合数,就会被2给拆解
printf("%d*",i);
n=n/i;
}
else
break;
}
}
printf("%d",n);
return 0;
}
#include<stdio.h>
int a[10];
int main()
{
int n,i,k=0;
scanf("%d",&n);
int tmp=n;
while(n) //2的时候单独处理 方便循环
{
if(n%2==0)
{
a[k++]=2;
n=n/2;
}
else
break;
}
i=3;
while(n!=1 && n!=0) //note: 最后除完了的商为1,不加条件,-->死循环
{
if(n%i==0)
{
a[k++]=i;
n=n/i;
}
else
i=i+2;
}
printf("%d=",tmp); //控制输出格式
for(i=0;i<k-1;i++)
{
printf("%d*",a[i]);
}
printf("%d",a[k-1]);
return 0;
}