题意
求素数个数和素数并输出
解析
小于2的数不是素数,2是素数,偶数直接排除
标程
#include <iostream>
#include <vector>
using namespace std;
// 判断是否为素数
bool isPrime(int num) {
if (num <= 1) return false; // 小于2的数不是素数
if (num == 2) return true; // 2是素数
if (num % 2 == 0) return false; // 偶数直接排除
// 检查从3到sqrt(num)的奇数因子
for (int i = 3; i * i <= num; i += 2) {
if (num % i == 0) {
return false;
}
}
return true;
}
int main() {
int n;
cin >> n;
vector<int> primes; // 存储素数的容器
int num;
// 读取n个数据并筛选素数
for (int i = 0; i < n; i++) {
cin >> num;
if (isPrime(num)) {
primes.push_back(num);
}
}
// 输出结果
cout << primes.size() << endl;
for (int p : primes) {
cout << p << endl;
}
return 0;
}