題目信息
令Pi表示第i個素數(shù)≡現(xiàn)任給兩個正整數(shù)M <= N <= 104黍图,請輸出PM到PN的所有素數(shù)厨喂。
輸入格式:
輸入在一行中給出M和N和措,其間以空格分隔庄呈。
輸出格式:
輸出從PM到PN的所有素數(shù)蜕煌,每10個數(shù)字占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
分析
寫出判斷素數(shù)的函數(shù),并設(shè)置一個count記錄這是第幾個素數(shù)文兑。
代碼
#include<iostream>
using namespace std;
bool isPrime(int a){ //判斷是否為素數(shù)標準寫法
for(int i=2;i*i<=a;i++) //這里如果i從0開始就會產(chǎn)生浮點錯誤
if(a%i==0) return false;
return true;
}
int main(){
int m,n,count=0;
cin >> m >> n;
for(int i=2;count<=n;i++){
if(isPrime(i)){
count++;
if(count>=m&&count<n){
if((count-m-9)%10==0) printf("%d\n",i);
else printf("%d ",i);
}
if(count==n) printf("%d",i);
}
}
return 0;
}
測試結(jié)果
image.png