hihocoder offer收割编程练习赛12 A 歌德巴赫猜想
2017-04-02 14:53
344 查看
思路:
枚举。
实现:
枚举。
实现:
1 #include <iostream> 2 #include <cstdio> 3 #include <algorithm> 4 using namespace std; 5 6 const int MAX_N = 1000005; 7 8 int prime[MAX_N]; 9 bool is_prime[MAX_N + 1]; 10 11 int init(int n) 12 { 13 int p = 0; 14 for (int i = 0; i <= n; i++) 15 is_prime[i] = true; 16 is_prime[0] = is_prime[1] = false; 17 for (int i = 2; i <= n; i++) 18 { 19 if (is_prime[i]) 20 { 21 prime[p++] = i; 22 for (int j = 2 * i; j <= n; j += i) 23 is_prime[j] = false; 24 } 25 } 26 return p; 27 } 28 29 int main() 30 { 31 int num = init(1000000); 32 int n; 33 cin >> n; 34 for (int i = 0; i < num; i++) 35 { 36 if (binary_search(prime + i, prime + num, n - prime[i])) 37 { 38 int index = lower_bound(prime + i, prime + num, n - prime[i]) - prime; 39 cout << prime[i] << " " << prime[index] << endl; 40 break; 41 } 42 } 43 return 0; 44 }
相关文章推荐
- hihocoder offer收割编程练习赛12 C 矩形分割
- hihocoder offer收割编程练习赛12 D 寻找最大值
- 【[Offer收割]编程练习赛12 A】歌德巴赫猜想
- hihocoder offer收割编程练习赛12 B 一面砖墙
- hihocoder offer收割编程练习赛8 A 小Ho的强迫症
- hihocoder offer收割编程练习赛8 B 拆字游戏
- hihocoder offer收割编程练习赛13 D 骑士游历
- hihocoder offer收割编程练习赛9 B 水陆距离
- 【[Offer收割]编程练习赛12 D】 寻找最大值
- 【[Offer收割]编程练习赛12 C】矩形分割
- hihocoder [Offer收割]编程练习赛12 [1494] ---- 一面砖墙
- 【[Offer收割]编程练习赛12 B】一面砖墙
- hihocoder [Offer收割]编程练习赛12 [1495] ---- 矩形分割
- [Offer收割]编程练习赛3 - 题目3 : 智力竞赛
- hiho 1601 背包DP乱搞 [Offer收割]编程练习赛29 Problem C 最大得分
- 【[Offer收割]编程练习赛15 C】过河问题
- 【[Offer收割]编程练习赛13 C】 一人麻将
- [Offer收割]编程练习赛39
- [Offer收割]编程练习赛40
- hihocoder[Offer收割]编程练习赛49 题解