[POJ2262] Goldbach’s Conjecture

Goldbach‘s Conjecture

Time Limit: 1000MS   Memory Limit: 65536K
Total Submissions: 48161   Accepted: 18300

Description

In 1742, Christian Goldbach, a German amateur mathematician, sent a letter to Leonhard Euler in which he made the following conjecture:

Every even number greater than 4 can be

written as the sum of two odd prime numbers.

For example:

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.

Today it is still unproven whether the conjecture is right. (Oh
wait, I have the proof of course, but it is too long to write it on the
margin of this page.)

Anyway, your task is now to verify Goldbach‘s conjecture for all even numbers less than a million.

Input

The input will contain one or more test cases.

Each test case consists of one even integer n with 6 <= n < 1000000.

Input will be terminated by a value of 0 for n.

Output

For
each test case, print one line of the form n = a + b, where a and b are
odd primes. Numbers and operators should be separated by exactly one
blank like in the sample output below. If there is more than one pair of
odd primes adding up to n, choose the pair where the difference b - a
is maximized. If there is no such pair, print a line saying "Goldbach‘s
conjecture is wrong."

Sample Input

8
20
42
0

Sample Output

8 = 3 + 5
20 = 3 + 17
42 = 5 + 37

Source

Ulm Local 1998


提交地址POJ2262


题解 :

怎么又是水题...

先筛法出素数;

然后暴力判断;


Code

 1 #include <iostream>
 2 #include <cstdio>
 3 using namespace std;
 4
 5 bool isprime[1000010]; //1 -> 合数, 0 -> 质数
 6
 7 int main()
 8 {
 9     isprime[0] = isprime[1] = 1;
10     for (register int i = 2 ; i <= 1000001 ; i ++)
11     {
12         if (isprime[i]) continue;
13         for (register int j = i ; j <= 1000001/i ; j ++)
14             isprime[i*j] = 1;
15     }
16
17     int n;
18     while (scanf("%d", &n) != EOF)
19     {
20         if (n == 0) return 0;
21         for (register int i = 0 ; i <= n ; i ++)
22         {
23             if (!isprime[i] and !isprime[n-i])
24             {
25                 printf("%d = %d + %d\n", n, i, n-i);
26                 break;
27             }
28         }
29     }
30
31 }

原文地址:https://www.cnblogs.com/zZh-Brim/p/9152918.html

时间: 2024-10-30 14:09:03

[POJ2262] Goldbach’s Conjecture的相关文章

POJ2262 ZOJ1951 UVa543 Goldbach&#39;s Conjecture

问题链接:POJ2262 ZOJ1951 UVa543 Goldbach's Conjecture.基础训练级的题,用C语言编写程序. 这个问题是验证哥德巴赫猜想,对于输入的n,找出一对差值最大的奇素数. 使用穷举法来解决这个问题. 目前POJ使用的C语言编译器,似乎比较古老,在别处可以编译通过的代码,在它这里编译错误. AC的C语言程序如下: /* POJ2262 ZOJ1951 UVa543 Goldbach's Conjecture */ #include <stdio.h> #incl

poj 2262 Goldbach&#39;s Conjecture

Goldbach's Conjecture Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 39353   Accepted: 15077 Description In 1742, Christian Goldbach, a German amateur mathematician, sent a letter to Leonhard Euler in which he made the following conject

Goldbach&#39;s Conjecture(哥德巴赫猜想)

Goldbach's Conjecture Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 5277    Accepted Submission(s): 2022点我 Problem Description Goldbach's Conjecture: For any even number n greater than or equa

POJ 2262 Goldbach&#39;s Conjecture (素数判断)

Goldbach's Conjecture Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 37693   Accepted: 14484 Description In 1742, Christian Goldbach, a German amateur mathematician, sent a letter to Leonhard Euler in which he made the following conject

题目1440:Goldbach&#39;s Conjecture

题目1440:Goldbach's Conjecture 时间限制:1 秒 内存限制:128 兆 特殊判题:否 题目描述: Goldbach's Conjecture: For any even number n greater than or equal to 4, there exists at least one pair of prime numbers p1 and p2 such that n = p1 + p2. This conjecture has not been prove

POJ 2262 Goldbach&#39;s Conjecture (求解素数的一般筛和线性筛)

Goldbach's Conjecture Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 40944   Accepted: 15664 Description In 1742, Christian Goldbach, a German amateur mathematician, sent a letter to Leonhard Euler in which he made the following conject

POJ 2262 Goldbach&#39;s Conjecture 数学常识 难度:0

题目链接:http://poj.org/problem?id=2262 哥德巴赫猜想肯定是正确的 思路: 筛出n范围内的所有奇质数,对每组数据试过一遍即可, 为满足b-a取最大,a取最小 时空复杂度分析: 在1e6内约有8e4个奇质数,因为a <= b,时间复杂度在T*4e4+1e6等级.一般T为1e3,足以承受 空间复杂度为1e6,足以承受 1 #include <cstdio> 2 #include <cstring> 3 #include <algorithm&g

Poj 2262 / OpenJudge 2262 Goldbach&#39;s Conjecture

1.Link: http://poj.org/problem?id=2262 http://bailian.openjudge.cn/practice/2262 2.Content: Goldbach's Conjecture Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 37791   Accepted: 14536 Description In 1742, Christian Goldbach, a German a

UVA, 543 Goldbach&#39;s Conjecture

题意:给你一个数,认为它能拆成两个素数之和的形式,能,则输出x = a + b ,不能则输出 "Goldbach's conjecture is wrong." 思路:打印素数表,x-prime[a]检查是否为素数 代码: 1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 using namespace std; 5 6 #define MAXN 1000001 7 #d