令Pi表示第i個素數。現任給兩個正整數M <= N <= 104,請輸出PM到PN的所有素數。
輸入格式:
輸入在一行中給出M和N,其間以空格分隔。
輸出格式:
輸出從PM到PN的所有素數,每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
思路:從1找起,并記錄下為第幾個素數,若在M和N之間,則輸出。注意行尾無空格。
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
int n,m,count=,i=;
int j,last;
cin>>n>>m;
while(i++)
{
for(j=;j<=sqrt(i);j++)
{
if(i%j==) break;
}
if(j>sqrt(i))
{
count++; //計錄是第幾個素數
if((count-n)%==&&count>n)//從第n個開始已經輸出了10個則換行
{ //count不能等于n,等于行則會輸出空行
cout<<endl;
}
if(count>=n)//從第n個開始輸出
cout<<i;
if(count==m) break;//到第m個為止
if(count>=n&&(count-n+)%!=)//行尾無空格
cout<<" ";
}
}
return ;
}
題目連結:
https://www.patest.cn/contests/pat-b-practise/1013