用c++语言从任意n个数中找出素数,求素数的和,并将这些素数按从小到大的顺序排序。
时间: 2024-10-29 07:18:57 浏览: 36
在C++中,我们可以创建一个函数来检查一个数是否为素数,然后遍历输入的n个数,筛选出素数,计算它们的和,最后对这些素数进行排序。以下是简单的步骤:
1. **素数判断函数**:编写一个`isPrime`函数,它接受一个整数作为参数,如果该数大于1并且只能被1和其本身整除,则返回`true`,否则返回`false`。
```cpp
bool isPrime(int num) {
if (num <= 1)
return false;
for (int i = 2; i * i <= num; i++) {
if (num % i == 0)
return false;
}
return true;
}
```
2. **主程序部分**:创建一个向量存储素数,初始化总和为0,然后遍历输入的数组,如果是素数就添加到向量并更新总和。
```cpp
#include <vector>
#include <algorithm>
int main() {
int n;
std::cin >> n;
std::vector<int> numbers(n);
int primeSum = 0;
// 读取n个数字并检查素数
for (auto& num : numbers) {
std::cin >> num;
if (isPrime(num)) {
primeSum += num;
numbers.push_back(num); // 只保留素数
}
}
// 对素数进行排序
std::sort(numbers.begin(), numbers.end());
std::cout << "素数和: " << primeSum << "\n";
std::cout << "排序后的素数: ";
for (const auto& prime : numbers) {
std::cout << prime << " ";
}
std::cout << "\n";
return 0;
}
```
阅读全文