PAT Basic 1013

1013 数素数 

令P~i~表示第i个素数。现任给两个正整数M <= N <= 10^4^,请输出P~M~到P~N~的所有素数。

输入格式:

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

输出格式:

输出从P~M~到P~N~的所有素数,每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
  题解:这道题其实就是打素数表,输出P~M~到P~N~的所有素数,要注意格式问题,第一次提交格式有误有两个测试点没过。
代码如下:
 1 #include<iostream>
 2 #include<math.h>
 3 
 4 using namespace std;
 5 
 6 bool f( int n)
 7 {
 8     if( n==1||n==0)
 9     return false;
10     if( n == 2)
11     return true;
12     for( int i = 2; i <=sqrt(n); i++)
13         if( n%i == 0)
14         return false;
15     return true;
16 }
17 
18 int main()
19 {
20     int m,n,k = 0,i = 2,num = 0;
21     cin>>m>>n;
22     while(k < m - 1)
23     {
24         if(f(i))
25             k++;
26         i++;
27     }
28     while(k < n)
29     {
30         if(f(i))
31         {
32             if(!num)
33                 num = 1;
34             else
35                 cout<<" "; 
36             k++;
37             cout<<i;
38             if( (k+1 -m) % 10 == 0){
39                 cout<<endl;
40                 num = 0;
41             }
42         }
43         i++;
44     }
45     return 0;
46 }


猜你喜欢

转载自www.cnblogs.com/yxp400/p/9448158.html