标签:
Time Limit: 1000MS | Memory Limit: 65536K | |
Total Submissions: 40455 | Accepted: 15485 |
Every even number greater than 4 can be
written as the sum of two odd prime numbers.
8 = 3 + 5. Both 3 and 5 are odd prime numbers.
20 = 3 + 17 = 7 + 13.
42 = 5 + 37 = 11 + 31 = 13 + 29 = 19 + 23.
8
20
42
0
8 = 3 + 5
20 = 3 + 17
42 = 5 + 37
线性筛素数
CODE:
#include <iostream> #include <cstdio> #include <cstring> #define REP(i, s, n) for(int i = s; i <= n; i ++) #define REP_(i, s, n) for(int i = n; i >= s; i --) #define MAX_N 1000000 + 10 #define MAX_M 80000 using namespace std; int n, pri[MAX_M]; bool check[MAX_N]; int Prime(){ memset(check, 0, sizeof(check)); int tot = 0; check[1] = 1; REP(i, 2, MAX_N){ if(!check[i]) pri[++ tot] = i; REP(j, 1, tot){ if(i * pri[j] > MAX_N) break; check[i * pri[j]] = 1; if(i % pri[j] == 0) break; } } return tot; } int main(){ int tot = Prime(); while(scanf("%d", &n) != EOF){ if(n == 0) break; REP(i, 1, tot){ if(!check[n - pri[i]] && pri[i] % 2 != 0){ printf("%d = %d + %d\n", n, pri[i], n - pri[i]); break; } } } return 0; }
POJ 2262 Goldbach's Conjecture
标签:
原文地址:http://www.cnblogs.com/ALXPCUN/p/4543373.html