题目描述
令Pn表示第i个素数,现任意给两个正整数M≤N≤10,请输出PM到P的所有素数。
输入格式:
输入在一行中给出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
解题思路:
题目要求输出第M~N个素数,则先求出N个素数
#include<iostream>
using namespace std;
#include<vector>
//判断是否为素数
bool is_prime(int num) {
if (num <= 1) {
return false;
}
for (int i = 2; i <= sqrt(num); i++) {
if (num % i == 0) {
return false;
}
}
return true;
}
int main() {
int M, N;
cin >> M >> N;
int count = 0;
int i = 0;
vector<int> v;
while (count != N) {
if (is_prime(i)) {
v.push_back(i);
count++;
}
i++;
}
int j = 0;
for (vector<int>::iterator it = v.begin() + M - 1; it != v.end(); it++) {
if (j != 10) {
cout << (*it) << " ";
j++;
}
else {
cout << endl << (*it) << " ";
j = 1;
}
}
system("pause");
return 0;
}