K - Goldbach's Conjecture解题报告

原创 2012年03月28日 17:20:51

K - Goldbach's Conjecture
Time Limit:1000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u

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

这题超时了N遍,就是不记得筛选法求素数了,哎~~~这次可要牢记了,其他的就不多说了。。。

#include<iostream>
#include<time.h>
short prime[1000000];
using namespace std;
int main()
{
	int i,j,s=0,n,num;
	memset(prime,0,sizeof(prime));
for(i=2;i<1000000;i++)
for(j=2;i*j<1000000;j++)
{
	if(prime[i*j]==0)
		prime[i*j]=1;
}
	while(scanf("%d",&n)&&n!=0)
	{
			for(i=3;i*2<=n;i+=2)
				if(prime[i]==0&&prime[n-i]==0)
				{
					printf("%d = %d + %d\n",n,i,n-i);
					goto end;
				}
				printf("Goldbach's conjecture is wrong.\n");
end:;
	}

	return 0;
}




Goldbach's Conjecture(筛选法求素数)

解题思路: 筛选法求素数模板题,
  • userluoxuan
  • userluoxuan
  • 2014年08月08日 20:34
  • 347

Goldbach`s Conjecture 【素数线性筛法】

Goldbach`s Conjecture Time Limit:2000MS     Memory Limit:32768KB     64bit IO Format:%lld & %llu S...
  • u014427196
  • u014427196
  • 2015年03月09日 23:14
  • 371

POJ Goldbach's Conjecture(素数筛~欧拉筛法)

Goldbach's Conjecture Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 39018   Acc...
  • u014361775
  • u014361775
  • 2015年01月26日 19:01
  • 535

LightOJ 1259 - Goldbach`s Conjecture (分解偶数为两个素数之和)

1259 - Goldbach`s Conjecture     PDF (English) Statistics Forum Time Li...
  • Rain722
  • Rain722
  • 2017年03月21日 16:11
  • 196

POJ 2262 Goldbach's Conjecture (求解素数的一般筛和线性筛)

POJ 2262 Goldbach's Conjecture (求解素数的一般筛和线性筛)
  • Tc_To_Top
  • Tc_To_Top
  • 2015年08月03日 23:05
  • 741

Linux网络状态工具ss命令使用详解

ss命令用于显示socket状态. 他可以显示PACKET sockets, TCP sockets, UDP sockets, DCCP sockets, RAW sockets, Unix dom...
  • jiangguilong2000
  • jiangguilong2000
  • 2015年01月24日 23:47
  • 1401

白话空间统计十五:多距离空间聚类分析 (Ripley's K 函数) (下)

书接上一回。   多距离空间聚类分析这个工具与其他的工具计算出来的结果都不太一样。按照空间分析软件的一般规律,扔进去的是一个空间数据,那么返回的自然也是一个空间数据……   不过在前面也很多分...
  • allenlu2008
  • allenlu2008
  • 2015年09月02日 12:07
  • 6740

各种语言版本实现欧拉猜想 Euler's sum of powers conjecture

Euler's sum of powers conjecture There is a conjecture in mathematics that held for over 200 ...
  • GarfieldEr007
  • GarfieldEr007
  • 2016年01月07日 12:44
  • 535

白话空间统计十五:多距离空间聚类分析 (Ripley's K 函数) (上)

空间分析里面,最重要的一个概念就是距离,不同的距离会导致不同的结果。在研究的时候,有种叫做“空间尺度”的概念,这个有兴趣的话,请自行百度(老规矩:百度知道的东西别问我)。   所以,在研究聚类的时...
  • allenlu2008
  • allenlu2008
  • 2015年08月30日 18:05
  • 8745

ZOJ Goldbach 2013年长沙赛区网络赛

迟到了一天的AC。。。。 思路: 先把单个素数 或着 两个素数能组成的情况预处理一下,然后对于给出的 n,拿第三个素数去和两个素数的情况匹配,最后要注意去重。 详情见代码。 因为手残少敲了一个 els...
  • u012161037
  • u012161037
  • 2013年09月24日 20:21
  • 1665
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:K - Goldbach's Conjecture解题报告
举报原因:
原因补充:

(最多只允许输入30个字)