#include<iostream>usingnamespace std;constint N =10010;bool vis[N];int p[N];int k =1;voidinit(){for(int i =2; i <= N; i++){if(!vis[i]){for(int j = i * i; j <= N; j += i)vis[j]=true;}}for(int i =2; i <= N; i++){if(!vis[i])p[k++]= i;}}intmain(){init();int n, m;cin >> n >> m;for(int i = n; i <= m; i++){cout << i <<"=";int j = i, cnt =1;while(j && cnt < k){//這里不能寫成cnt<=k,會越界if(j % p[cnt]==0){cout << p[cnt];j = j / p[cnt];if(j !=1)cout <<"*";}elsecnt++;}cout << endl;}return0;}
法二: 代碼如下:
#include<iostream>usingnamespace std;constint N =10010;int k =1;bool vis[N];int p[N];voidinit(){for(int i =2; i <= N; i++){if(!vis[i]){p[k++]= i;for(int j =2* i; j <= N; j += i)vis[j]=true;}}}intmain(){init();int n, m;cin >> n >> m;for(int i = n; i <= m; i++){cout << i <<"=";int j = i;int cnt =1;while(j && cnt < k){if(j % p[cnt]==0){cout << p[cnt];j = j / p[cnt];if(j !=1)cout <<"*";}elsecnt++;}cout << endl;}return0;}