PAT Basic 1013
Posted yxp400
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 }
以上是关于PAT Basic 1013的主要内容,如果未能解决你的问题,请参考以下文章