首页 > 代码库 > PAT 乙级 1013. 数素数 (20)

PAT 乙级 1013. 数素数 (20)

令Pi表示第i个素数。现任给两个正整数M <= N <= 104,请输出PM到PN的所有素数。

输入格式:

输入在一行中给出M和N,其间以空格分隔。

输出格式:

输出从PM到PN的所有素数,每10个数字占1行,其间以空格分隔,但行末不得有多余空格。

输入样例:

5 27

输出样例:

11 13 17 19 23 29 31 37 41 4347 53 59 61 67 71 73 79 83 8997 101 103

 1 #include<cstdio> 2 #include<iostream> 3 #include<cmath> 4 #include<cstring> 5 using namespace std; 6  7 int a[111005];//注意是素数数量在10^4以内,不是范围 8  9 bool prime(int num)10 {11     if(num==0||num==1)12         return false;13     else if(num==2||num==3)14         return true;15     else{16         for(int i=2;i<sqrt((double)num)+1;i++)17             if(num%i==0)18                 return false;19     }20     return true;21 }22 23 int main()24 {25     int k=1;26     for(int i=1;i<111005;i++)27         if(prime(i))28             a[k++]=i;29     int m,n;30     scanf("%d%d",&m,&n);31     for(int i=m;i<=n;i++)32     {33         if((i-m+1)%10==1)34             printf("%d",a[i]);35         else if((i-m+1)%10==0)36             printf(" %d\n",a[i]);37         else38             printf(" %d",a[i]);39     }40     //printf("\n%d\n",k);41     return 0;42 }

 

PAT 乙级 1013. 数素数 (20)