1013 数素数
输入样例:
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
!结尾无空行
语言:
c++
分析: cnt用来表示第几个素数,num从2开始递增调,在cnt小于n的条件下循环调用子函数判断num是否是素数,是素数就更新cnt的值并且存入vector容器中。
注意判断是否是素数的条件是i* i<=a,而不是i* i<a,不要漏掉“=”。
#include<iostream>
#include<vector>
using namespace std;
bool isprime(int a){
for(int i=2;i*i<=a;i++)
if(a%i==0) return false;
return true;
}
int main(){
int n,m,cnt=0,num=2;
vector<int>v;
cin>>m>>n;
while(cnt<n){
if(isprime(num)){
cnt++;
if(cnt>=m) v.push_back(num);
}
num++;
}
cnt=0;
for(int i=0;i<v.size();i++){
cnt++;
if(cnt%10!=1) cout<<" ";
cout<<v[i];
if(cnt%10==0) cout<<endl;
}
return 0;
}