http://47.104.209.207/problem/old1058
先用筛法筛出所有质数,然后对每个数进行质因数分解。
1 #include<cmath> 2 #include<iostream> 3 #include<queue> 4 #include<vector> 5 #include<algorithm> 6 using namespace std; 7 const int N=10010; 8 bool vis[N]; 9 int primes[N],cnt; 10 int main(){ 11 int a,b; 12 cin>>a>>b; 13 for(int i=2;i<=b;i++){ 14 if(!vis[i]){ 15 primes[cnt++]=i; 16 for(int j=2*i;j<=b;j+=i){ 17 vis[j]=1; 18 } 19 } 20 } 21 for(int i=a;i<=b;i++){ 22 int t=i; 23 cout<<t<<"="; 24 vector<int> res; 25 for(int j=0;j<cnt;j++){ 26 while(t%primes[j]==0){ 27 res.push_back(primes[j]); 28 t/=primes[j]; 29 } 30 } 31 if(res.empty()) res.push_back(1); 32 cout<<res[0]; 33 for(int i=1;i<res.size();i++){ 34 cout<<"*"<<res[i]; 35 } 36 cout<<endl; 37 } 38 return 0; 39 }