本文主要是介绍Java题目:一个偶数总能表示为两个素数之和。(哥德巴赫猜想),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
哥德巴赫猜想
哥德巴赫猜想是指任何一个大于2的偶数都可以表示为两个素数之和。这个猜想最早出现在1742年普鲁士人克里斯蒂安·哥德巴赫与瑞士数学家莱昂哈德·欧拉的通信中。虽然哥德巴赫自己无法证明它,欧拉也无法证明,但欧拉在回信中提出了一个等价版本,即任一大于2的偶数都可写成两个质数之和。这个猜想与整数分拆问题有一定联系,也属于希尔伯特第八问题中的一个子问题。在数学界,哥德巴赫猜想一直未被证明,但在1966年,陈景润证明了“1+2”成立,即“任一充分大的偶数都可以表示成二个素数的和,或是一个素数和一个半素数的和”。哈洛德·贺欧夫各特在2013年发表了两篇论文,宣布彻底证明了弱哥德巴赫猜想,即任何一个大于7的奇数都能被表示成三个奇质数的和。
package test6;import java.util.Scanner;public class Test1 {/*** 题目:一个偶数总能表示为两个素数之和。* //由于用除sqrt(n)的方法求出的素数不包括2和3,* //因此在判断是否是素数程序中人为添加了一个*/public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println("请输入一个偶数:");int num = sc.nextInt();// 此处的次数在偶数数值的一半即可for (int i = 2; i < num / 2; i++) {if (judgment(i) && judgment(num - i)) {System.out.println(num + " = " + i + " + " + (num - i));}}sc.close();}public static boolean judgment(int n) {boolean flag = true;if (n==2||n==3) {flag = true;}for (int i = 2; i <= Math.sqrt(n); i++) {// 判断素数的方法:用一个数分别去除2到sqrt(这个数)if (n % i == 0) {// 如果可以整除,则不是素数,返回值为falseflag = false;}}return flag;// 循环结束,没有中途返回值,则为素数,返回值为true}}
这篇关于Java题目:一个偶数总能表示为两个素数之和。(哥德巴赫猜想)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!