#include <cmath>
#include <cstdio>
#include <algorithm>
#include <iostream>
#include <cstring>
#define M 100005
#define N 100005
using namespace std;
int pri[M+1]; //这样才有pri[M]元素
int prime[N]; //保存素数
int a,b;
int zys[105]; //保存分解的质因数
void f() //埃氏筛法
{
int j=0;
for(int i=2;i<=M;i++)
{
if(!pri[i])
{
prime[j++]=i;
int k=2;
while(i*k<=M)
{
pri[i*k]=1;
k++;
}
}
}
}
int main()
{
f();
// for(int i=0;i<=20;i++)
// cout<<prime[i]<<endl;
scanf("%d %d",&a,&b);
for(int num=a;num<=b;num++)
{
int tmp=num,k=0;
while(tmp!=1)
{
int i=0;
while(true)
{
if(tmp%prime[i]==0)
{
zys[k++]=prime[i];
tmp/=prime[i];
break; //跳出循环
}
else
{
i++;
}
}
}
//跳出最外层while循环后
cout<<num<<"="<<zys[0];
for(int i=1;zys[i];i++)
cout<<"*"<<zys[i];
cout<<endl;
memset(zys,0,sizeof(zys)); //重新赋值为0
}
return 0;
}
蓝桥杯基础练习 分解质因数
最新推荐文章于 2020-05-09 14:24:38 发布