题目描述
求出区间[a,b]中所有整数的质因数分解。
提示
先筛出所有素数,然后再分解。
样例输入
输入两个整数a,b。
2< =a< =b< =10000
样例输出
每行输出一个数的分解,形如k=a1a2a3…(a1< =a2< =a3…,k也是从小到大的)(具体可看样例)
输入格式
3 10
输出格式
3=3
4=22
5=5
6=23
7=7
8=222
9=33
10=25
思路
筛选出全部代码,确定谁是素数,谁是合数,然后再进行分解
代码
#include<iostream>
using namespace std;
int a,b;
int g[100010];
int main()
{
cin>>a>>b;
for(int i=2;i*i<=b;i++)
{
for(int j=i*i;j<=b;j+=i)
g[j]=1;
}
for(int i=a;i<=b;i++)
{
if(g[i]==0)
{
cout<<i<<'='<<i<<endl;
continue;
}
else
cout<<i<<'=';
int s=i;
int h=2;
while(g[s])
{
if(s%h==0)
{
cout<<h;
s/=h;
if(s!=1)
cout<<'*';
}
else
h++;
}
cout<<s<<endl;
}
return 0;
}