C - 分拆素數和 (HDU - 2098)
阿新 • • 發佈:2018-02-08
pac 記錄 sqrt esp 整除 枚舉 math space clas
- 題目大意
正如題目一樣,就是將一個正偶數拆分成素數(記錄拆分的素數個數就行,不用寫出是那些素數)。
- 解題思路
去枚舉每個數是否能被輸入的數字整除,如果能就不行,反之記錄即可。
- 代碼
#include<iostream> #include<cmath> using namespace std; int cf(int n) { int r, i; if (n <= 1) return 0; for (i = 2; i <= int(sqrt(int(n))); i++) if (n%i == 0) break; if (i>int(sqrt(int(n)))) return n; else return 0; } int main() { int n; int sum = 0; while (cin >> n) { if (n == 0) break; for (int i = 0; i < n / 2; i++) { if (cf(i) && cf(n - i)) { sum++; } } cout << sum << endl; sum = 0; } return 0; }
C - 分拆素數和 (HDU - 2098)