问题描述
求出区间[a,b]中所有整数的质因数分解。
输入格式
输入两个整数a,b。
输出格式
每行输出一个数的分解,形如k=a1a2a3…(a1<=a2<=a3…,k也是从小到大的)(具体可看样例)
样例输入
3 10
样例输出
3=3
4=22
5=5
6=23
7=7
8=222
9=33
10=25
提示
先筛出所有素数,然后再分解。
数据规模和约定
2<=a<=b<=10000
#include<stdio.h>
int main()
{
int a,b;
scanf("%d%d",&a,&b);
int i,j,t,n,d,k=1;
int z[10000];//存质数
z[0]=2;
for(i=3;i<=b;i++)
{
t=0;
for(j=2;j<i;j++)
{
if(i%j==0)
{
t=1;//不是质数
break;
}
}
if(t==0)
{
z[k]=i;
k++;
}
}
for(i=a;i<=b;i++)//遍历a~b的所有数
{
n=i;
printf("%d=",n);
for(j=0;z[j]!=0;j++)//遍历素数
{
if(n%z[j]==0)
{
while(n/z[j]!=0&&n%z[j]==0)
{
d=z[j];
if(n==d) printf("%d",d);
else printf("%d*",d);
n=n/d;
}
}
else
{
if(z[j+1]==0&&n==i) printf("%d",n);
}
}
printf("\n");
}
return 0;
}