您的位置:首页 > 其它

PAT(乙级)1013. 数素数

2016-06-23 20:08 295 查看
令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#include <iostream>
#include <cmath>
using namespace std;
bool isPrime(int n)
{
if (n < 2)
{
return false;
}
if (n == 2)
{
return true;
}
for (int i = 2; i <= sqrt(n); ++i)
{
if (n % i == 0)
{
return false;
}
}
return true;
}
int main()
{
int m, n;
cin >> m >> n;
int no = 0;
int count = 0;
for (int i = 2; i <= 110000; ++i)
{
if (isPrime(i))
{
no++;
if (no >= m && no <= n){
if (count % 10 == 0){
cout << i;
}
else{
cout << " " << i ;
}
++count;
if (count % 10 == 0)
{
cout << endl;
}
}
}
}
return 0;
}

分析:最开始准备打表做,但发现一个测试点超时了,所以直接在间距内进行遍历判断并输出。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: