参考代码:
#include <iostream> #include <cstring> using namespace std; const int N=10005; int ans[N]; void isprime(int ans[N]){ for(int i=2;i<=10000;i++){ if(ans[i])continue; for(int j=i*i;j<=10000;j+=i){ if(!ans[j])ans[j]=1; } } } void f(int i,int ans[N]){ cout<<i<<"="; while(i>1){ for(int j=2;j<=i;j++){ if(!ans[j]&&i%j==0){cout<<j;i=i/j;break;} } if(i>1){cout<<"*";} } cout<<endl; } int main() { int a,b; cin>>a>>b; memset(ans,0,sizeof(ans)); ans[0]=ans[1]=1; isprime(ans); for(int i=a;i<=b;i++){ if(!ans[i])cout<<i<<"="<<i<<endl; else f(i,ans); } return 0; }
0.0分
0 人评分