令Pi表示第i个素数。现任给两个正整数M <= N <= 104,请输出PM到PN的所有素数。
输入格式:
输入在一行中给出M和N,其间以空格分隔。
输出格式:
输出从PM到PN的所有素数,每10个数字占1行,其间以空格分隔,但行末不得有多余空格。
输入样例:
1 |
5 27 |
输出样例:
1 2 3 |
11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 101 103 |
注意验证素数时不要超时即可。测试点4可能会超时……
代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
#include<stdio.h> #include<math.h> int is_prime(int num) { int i; if(num==2) return 1; else { for(i=2;i<=sqrt(num);i++) { if(num%i==0) return 0; } } return 1; } int main() { int m,n,num,i=0,count=0; scanf("%d %d",&m,&n); for(num=2;1;num++) { if(is_prime(num)) { i++; if(i>=m&&i<n) { count++; if(count==10) { printf("%d\n",num); count=0; } else { printf("%d ",num); } } else if(i==n) { count++; if(count==10) { printf("%d\n",num); count=0; } else { printf("%d",num); } break; } } } } |