- MysGln 的博客
9月5日
- @ 2026-9-5 20:30:09
哥德巴赫猜想
#include <bits/stdc++.h>
using namespace std;
bool ck(int x) {
// O(N) -- for i <- 2 to n-1
// O(sqrt(N)) cmath
// for (int i = 2; i <= x / i; i++)
// for (int i = 2; i * i <= x; i++)
for (int i = 2; i <= sqrt(x); i++) {
if (x % i == 0) {
return false;
}
}
return x > 1;
}
int main() {
int n;
cin >> n;
for (int i = 2; i <= n; i++) {
for (int j = 2; j <= n; j++) {
for (int k = 2; k <= n; k++) {
if (i + j + k == n && ck(i) && ck(j) && ck(k)) {
cout << i << ' ' << j << ' ' << k << endl;
return 0;
}
}
}
}
}
文件读写
使用 freopen() 函数来实现对文件读取、写入的功能。
常考以下两类:
- 文件读入
freopen("data.in", "r", stdin) - 文件写入
freopen("data.out", "w", stdout)
后续程序的输入会默认走 data.in 这个文件,后续程序的写入默认写入 data.out 这个文件。
#include <bits/stdc++.h>
using namespace std;
const int N = 101;
int a[N];
int main() {
freopen("count.in", "r", stdin);
freopen("count.out", "w", stdout);
int n;
cin >> n;
for (int i = 1; i <= n; i++) {
cin >> a[i];
}
// (i, j) ==> a[i] + a[j] == a[k]
int ans = 0;
for (int k = 1; k <= n; k++) {
bool ok = false;
for (int i = 1; i <= n && !ok; i++) {
for (int j = 1; j <= n && !ok; j++) {
if (a[i] + a[j] == a[k] && i != j) {
ans++;
ok = true;
break;
}
}
}
}
cout << ans << endl;
}