一行两个整数m和n,4<=n<=m<=100,输出表示每个偶数的哥德巴赫猜想表达式
#include <iostream>
#include <vector> // 使用vector存储素数
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 m, n;
cin >> m >> n; // 输入m和n,4<=n<=m<=100
vector<int> primes; // 存储素数的vector
for (int i = 2; i <= n; i++) { // 遍历2到n的每个数
if (is_prime(i)) { // 如果该数是素数,将其加入vector中
primes.push_back(i);
}
}
for (int i = 4; i <= m; i += 2) { // 遍历4到m的每个偶数
cout << i << "="; // 输出当前偶数
for (int j = 0; j < primes.size(); j++) { // 遍历vector中的素数
if (is_prime(i - primes[j])) { // 如果i减去该素数仍为素数,即找到了一组符合哥德巴赫猜想的两个素数
cout << primes[j] << "+" << i - primes[j] << endl; // 输出两个素数的和
break;
}
}
}
return 0;
}
个位存在a[0],高位在后面。