任意输入20个正整数,找出其中的素数,并将这些素数按由小到大排序。要求:判断一个数是否为素数用函数实现;排序用函数实现
时间: 2023-06-01 12:06:43 浏览: 160
python 输入一个正整数判断它是不是素数 示例
5星 · 资源好评率100%
Sure, 我会按照您的要求回答问题。以下是您的答案:
问题1: 任意输入20个正整数,找出其中的素数,并将这些素数按由小到大排序。要求:判断一个数是否为素数用函数实现;排序用函数实现。
答案1: 首先,我们可以写一个函数来判断一个数是否为素数:
```
bool is_prime(int n) {
if (n < 2) {
return false;
}
for (int i = 2; i * i <= n; ++i) {
if (n % i == 0) {
return false;
}
}
return true;
}
```
这个函数会返回 true 或 false,表示输入的数是否为素数。
现在,我们可以写主函数来实现我们的要求:
```
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
bool is_prime(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() {
vector<int> primes;
int num;
cout << "请输入20个正整数: " << endl;
for (int i = 0; i < 20; ++i) {
cin >> num;
if (is_prime(num)) {
primes.push_back(num);
}
}
sort(primes.begin(), primes.end());
cout << "这些素数按由小到大的顺序排序为: " << endl;
for (int p : primes) {
cout << p << " ";
}
cout << endl;
return 0;
}
```
这个程序会首先读入 20 个正整数,然后判断它们是否为素数,把素数存储在一个 vector 中,最后用 sort 函数对它们进行排序并输出。
阅读全文