C++实现我们定义如果a和a+2都是素数如5和7那么我们就称a和a+2是一对孪生素数。请写一个程序找出2~N之间的所有孪生素数。输入—个整数N 2N10000000 。输出2~N之间的所有孪生素数。样例输入 复制10样例输出 复制3 55 7内存限制:256 MB时间限制:1000 S
以下是使用C++实现的代码:
#include <iostream>
#include <vector>
#include <cmath>
using namespace std;
bool isPrime(int n) {
if (n <= 1) {
return false;
}
for (int i = 2; i <= sqrt(n); i++) {
if (n % i == 0) {
return false;
}
}
return true;
}
void findTwinPrimes(int N) {
vector<pair<int, int>> twinPrimes;
for (int i = 2; i <= N - 2; i++) {
if (isPrime(i) && isPrime(i + 2)) {
twinPrimes.push_back(make_pair(i, i + 2));
}
}
for (int i = 0; i < twinPrimes.size(); i++) {
cout << twinPrimes[i].first << " " << twinPrimes[i].second << endl;
}
}
int main() {
int N;
cin >> N;
findTwinPrimes(N);
return 0;
}
该程序首先定义了一个函数isPrime,用来判断一个数是否为素数。然后定义了另一个函数findTwinPrimes,用来找出2到N之间的所有孪生素数。在findTwinPrimes函数中,使用一个vector来保存找到的孪生素数对。最后,在main函数中读取输入的N,并调用findTwinPrimes函数来输出结果
原文地址: https://www.cveoy.top/t/topic/hSQL 著作权归作者所有。请勿转载和采集!