1. 程式人生 > >PAT Basic 1013

PAT Basic 1013

car out ostream end basic 正整數 code false eml

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 }



PAT Basic 1013