编写程序输出n以内最大的10个素数及其之和;如果n以内最大素数不足10个
时间: 2024-01-31 10:08:30 浏览: 120
以下是C++代码实现:
```cpp
#include <iostream>
#include <vector>
using namespace std;
bool isPrime(int n) {
if (n < 2) return false;
for (int i = 2; i * i <= n; i++) {
if (n % i == 0) return false;
}
return true;
}
int main() {
int n, sum = 0;
cin >> n;
vector<int> primes;
for (int i = n; i >= 2; i--) {
if (isPrime(i)) {
primes.push_back(i);
if (primes.size() == 10) break;
}
}
for (int i = 0; i < primes.size(); i++) {
sum += primes[i];
cout << primes[i] << " ";
}
cout << endl << "Sum: " << sum << endl;
return 0;
}
```
解释:
首先定义一个函数 `isPrime` 判断一个数是否为素数。然后输入一个整数 `n`,从 `n` 开始往下枚举每个数,如果是素数就加入一个 `vector` 中,直到 `vector` 的大小为 10 或者已经枚举完所有小于等于 2 的数。最后输出这个 `vector` 中的元素和。
阅读全文