【C语言作业】分解质因数(质数分解 循环)

求出区间[a,b]中所有整数的质因数分解。每行输出一个数的分解,形如k=a1*a2*a3...(a1<=a2<=a3...,k也是从小到大的)

#include<stdio.h>
int sushu(int n)
{
int a;
for(a=2;a*a<=n;a++)
{
if(n%a==0) return a;
}
return n;
}
int main()
{
int a,b,i,t=1,m;
scanf("%d %d",&a,&b);
for(i=a;i<=b;i++)
{
printf("%d=",i);
t=sushu(i);
m=t;
if(t==i)
{
printf("%d\n",i);
continue;
}
else
{
printf("%d*",t);
while(1)
{
t = sushu(i/m);
if(t==1)
break;
m*=t;
if(m!=i)
printf("%d*",t);
else
printf("%d\n",t);
}
}

}

return 0;
}

猜你喜欢

转载自www.cnblogs.com/asher0608/p/11689515.html