Hướng dẫn giải của Phỏng đoán của Goldbach
Chỉ dùng lời giải này khi không có ý tưởng, và đừng copy-paste code từ lời giải này. Hãy tôn trọng người ra đề và người làm lời giải.
Nộp code mẫu trước khi tự giải được bài tập là một hành vi có thể bị ban.
Tác giả:
Tóm tắt đề bài: ta cần đếm số cặp ~(a, b)~ sao cho ~ \begin{cases} a \le b \\ a+b = N\\ a, b \text{ là số nguyên tố} \end{cases} ~
Ta duyệt ~a~ từ ~1~ đến ~N~, xác định ~b = N-a~, nếu thỏa điều kiện trên thì cập nhật vào đáp án.
Code tham khảo
// Created by BJMinhNhut
#include <bits/stdc++.h>
using namespace std;
/***End of Template***/
int n;
void Input() {
cin >> n;
}
bool isPrime(int n) {
for(int i = 2; i*i <= n; ++i) if (n%i == 0) return false;
return true;
}
void Solve() {
int ans = 0;
for(int v = 2; v <= n-v; ++v) {
if (isPrime(v) && isPrime(n-v)) ans++;
}
cout << ans;
}
int main() {
ios::sync_with_stdio(0); cin.tie(0);
Input(), Solve();
return 0;
}
Bình luận