输入格式:
输入在一行中给出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 <cstdio> #include <cstring> using namespace std; int prime[1000000]; inline void getPrime() { int m=1000; int i,j; for (i=2;i<1000;i++) { if (!prime[i]) { for (j=i*i;j<1000000;j+=i) prime[j]=1; } } j=0; for (i=2;i<1000000;i++) if (!prime[i]) prime[j++]=i; } int main() { memset(prime,0,sizeof(prime)); int num=0; bool flag=false; int M,N; getPrime(); cin>>M>>N; for (int i=M-1;i<N;i++) { if (num!=0&&num%10==0) { cout<<endl; flag=false; } if (flag) cout<<" "; else flag=true; cout<<prime[i]; num++; } //system("PAUSE"); return 0; }