数素数
输入格式:
输入在一行中给出 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
思路:
提前用素数判断函数对前10 4个素数算出来,在根据区间输出即可。
实现:
#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;
}
void test()
{
int a, b;
cin >> a >> b;
vector<int>v1;
v1.push_back(0);
for (int i = 2; i <= 17107; i++)
{
if (isprime(i))
{
v1.push_back(i);
}
}
int flag = 0;
int flag1 = 0;
for (int i = a; i <=b; i++)
{
if (flag1 == 10)
{
cout << endl;
flag1 = 0;
flag = 0;
}
if (flag == 1)
cout << " ";
cout << v1[i];
flag = 1;
flag1++;
}
}
int main()
{
test();
return 0;
}