令Pi表示第i个素数。现任给两个正整数M <= N <= 104,请输出PM到PN的所有素数。
输入格式:
输入在一行中给出M和N,其间以空格分隔。
输出格式:
输出从PM到PN的所有素数,每10个数字占1行,其间以空格分隔,但行末不得有多余空格。
输入样例:5 27输出样例:
11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 101 103 #include <iostream> #include <math.h> using namespace std; bool ifprime(int x) { int i; bool flag=true; int length=(int)sqrt(x); //cout<<"length="<<length<<endl; for(i=3;i<length+1;i+=2) { if(x!=1) { if(!(x%i)) { //cout<<"x x%i="<<x<<" "<<x%i<<endl; flag=false; break; } }else flag=false; } // cout<<"x flag"<<x<<" "<<flag<<endl; return flag; } int main() { int i; int n,m; cin>>n>>m; int count=1,hang=0; //cout<<n<<m<<endl; if(m==1) { cout<<"2"; return 0; } else if(n==1) { cout<<"2 "; hang++; } for(i=3;;i+=2) { if(ifprime(i)) { count++; if(count==m) { cout<<i; break; } else if(count>n-1) { hang++; if(hang>9) { cout<<i<<endl; hang=0; } else cout<<i<<" "; } } } return 0; }