编写程序,建立链表容器,从键盘上输入若干正整数,保存在容器内,利用STL算法,分别统计容器内值为0的元素个数和素数个数。 输入格式: 第一行输入整数数量n; 第二行输入n个整数; 输出格式: 第一行输出0的数量; 第二行输出素数的数量;
时间: 2024-03-08 11:47:44 浏览: 112
以下是C++代码实现:
```cpp
#include <iostream>
#include <list>
#include <algorithm>
using namespace std;
bool is_prime(int n) {
if (n <= 1) {
return false;
}
for (int i = 2; i * i <= n; i++) {
if (n % i == 0) {
return false;
}
}
return true;
}
int main() {
int n;
cin >> n;
list<int> num_list;
for (int i = 0; i < n; i++) {
int num;
cin >> num;
num_list.push_back(num);
}
int num_zero = count(num_list.begin(), num_list.end(), 0);
int num_prime = count_if(num_list.begin(), num_list.end(), is_prime);
cout << num_zero << endl;
cout << num_prime << endl;
return 0;
}
```
首先使用链表容器存储输入的整数。然后使用 `count` STL 算法统计容器内值为 0 的元素个数。使用 `count_if` STL 算法统计容器内素数的个数,其中 `is_prime` 函数用于判断一个数是否是素数。最后输出结果。
阅读全文