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 解题报告

Description In 1742, Christian Goldbach, a German amateur mathematician, sent a letter to Leonhar...

POJ-2262 Goldbach's Conjecture 解题报告(数论) 哥德巴赫的猜想

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

【Jason's_ACM_解题报告】Broken Keyboard (a.k.a. Beiju Text)

Broken Keyboard (a.k.a. Beiju Text) 解题报告

[leetcode] 358. Rearrange String k Distance Apart 解题报告

题目链接: https://leetcode.com/problems/rearrange-string-k-distance-apart/ Given a non-empty string...

Poj 2104 K-th Number 主席树 解题报告

K-th Number
  • Hawo11
  • Hawo11
  • 2017年07月17日 09:37
  • 144

[Leetcode] 325. Maximum Size Subarray Sum Equals k 解题报告

题目: Given an array nums and a target value k, find the maximum length of a subarray that sums t...

【NSOJ】K上升段 解题报告

问题描述: 对于n的一个全排列,如果它可以划分成k个单调递增序列,每个序列都尽可能最长,则称其为k上升段。例如:排列1 2 4 5 6 3 9 10 7 8是一个合法的3上升段,它可以划分成1 2 4...

23. Merge k Sorted Lists等题 第二周解题报告

原题Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complexity....
  • Mr_Zing
  • Mr_Zing
  • 2016年09月11日 23:47
  • 547

LeetCode解题报告--Merge k Sorted Lists

**题目:**Merge k Sorted Lists Merge k sorted linked lists and return it as one sorted list. Analyze ...

【LeetCode】560.Subarray Sum Equals K解题报告

【LeetCode】560.Subarray Sum Equals K解题报告tags: Array 题目地址:https://leetcode.com/problems/subarray-sum-e...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:K - Goldbach's Conjecture解题报告
举报原因:
原因补充:

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