Poj 2662,2909 Goldbach's Conjecture (素数判定)
2013-07-21 11:11
288 查看
一、Description
In 1742, Christian Goldbach, a German amateur mathematician, sent a letter to Leonhard Euler in which he made the following conjecture:
For example:
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."
二、题解
一看到这个题目的时候思路还是很清晰的,心想很快就能做完的,但是没想到WA了不下6次。那个自己写的判断奇素数的方法测试数据都没有问题,但不知道怎么回事就是过不了。后来用了别人用的判断素数的方法,最后过了。最简单的方法:用n除以2 ~ n^2,有一个能除尽就不是素数,否则是素数。时间复杂度:O(sqrt(n))。题目不难,但有些方法的运用还是存在考虑不全的情况。这里有详细的素数判断方法介绍http://wxdlut.blog.163.com/blog/static/128770158200910129412537/
poj2909与此题相同,只是输出的是等式的个数。
三、Java代码
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.
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.
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."
二、题解
一看到这个题目的时候思路还是很清晰的,心想很快就能做完的,但是没想到WA了不下6次。那个自己写的判断奇素数的方法测试数据都没有问题,但不知道怎么回事就是过不了。后来用了别人用的判断素数的方法,最后过了。最简单的方法:用n除以2 ~ n^2,有一个能除尽就不是素数,否则是素数。时间复杂度:O(sqrt(n))。题目不难,但有些方法的运用还是存在考虑不全的情况。这里有详细的素数判断方法介绍http://wxdlut.blog.163.com/blog/static/128770158200910129412537/
poj2909与此题相同,只是输出的是等式的个数。
三、Java代码
import java.util.Scanner; public class Main { public static boolean isOddPrime(int a){ for(int i=2;i*i<=a;i++){ if(a % i==0) return false; } return true; } public static void conjecture(int n){ int i=3; while(i<=n){ if(isOddPrime(i) && isOddPrime(n-i)){ System.out.println(n+" = "+i+" + "+(n-i)); break; } i+=2; } } public static void main(String[] args){ Scanner cin=new Scanner(System.in); int n; while((n=cin.nextInt())!=0){ conjecture(n); } } }
相关文章推荐
- Poj 2662,2909 Goldbach's Conjecture (素数判定)
- Poj 2662,2909 Goldbach's Conjecture (素数判定)
- 筛素数——POJ 2909 Goldbach's Conjecture
- POJ 2909 / ZOJ 1657 : Goldbach\'s Conjecture - 筛法打素数表
- poj 2262 Goldbach's Conjecture 素数 水题
- poj 2909 Goldbach's Conjecture (哥德巴赫猜想)
- POJ2909_Goldbach's Conjecture【素数判断】【水题】
- POJ 2909 Goldbach's Conjecture(素数表)
- POJ 2909 Goldbach's Conjecture(我的水题之路——任一数为素数对之和)
- poj 2262 Goldbach's Conjecture(素数筛选法)
- POJ 2262 Goldbach's Conjecture (素数判断)
- (Relax 数论1.13)POJ 2909 Goldbach's Conjecture(欧拉筛法的应用:给出一个偶数,要求在这个偶数的范围内,有几对素数和是等于这个偶数的,注意素数对的不重复性! )
- POJ 2909 Goldbach's Conjecture
- POJ 2262/ ZOJ 1951:Goldbach\'s Conjecture - 筛法打素数表
- POJ 2262 Goldbach's Conjecture 简单的素数
- HDU 1397 Goldbach's Conjecture(二分,查找素数)
- POJ 2262 Goldbach's Conjecture(素数)
- POJ 2262 Goldbach's Conjecture
- 数学#素数判定Miller_Rabin+大数因数分解Pollard_rho算法 POJ 1811&2429
- POJ 2262 Goldbach's Conjecture