输出m-n之间所有第偶数个质数的和, 例如 2到20之间的质数是 2 3 5 7 11 13 17 19 我们就要输出 3+7+13+19的和。 输入: 一行包含两个整数m和n(1<m<n<1000); 输出: 一行输出包含一个整数; 难度: 难 输入示例: 2 20 输出示例: 42 代码类型: C/C++
时间: 2024-02-13 21:00:25 浏览: 140
以下是 C++ 代码实现:
```c++
#include <iostream>
#include <cmath>
using namespace std;
bool is_prime(int n) {
if (n < 2) {
return false;
}
int sqr = sqrt(n);
for (int i = 2; i <= sqr; i++) {
if (n % i == 0) {
return false;
}
}
return true;
}
int main() {
int m, n, cnt = 0, sum = 0;
cin >> m >> n;
for (int i = 2; i <= n; i++) {
if (is_prime(i)) {
cnt++;
if (cnt % 2 == 0 && i >= m) {
sum += i;
}
}
}
cout << sum << endl;
return 0;
}
```
首先定义了一个函数 `is_prime`,用于判断一个数是否是质数。然后读入 m 和 n,从 2 开始遍历到 n,对于每个数,判断它是否是质数,如果是质数,则累加计数器 cnt,如果 cnt 是偶数且这个数在 m 到 n 的范围内,则将这个数累加到和变量 sum 上。最后输出 sum 即可。
阅读全文