java哥德巴赫猜想代码 java歌德巴赫猜想
如何用java程序证明哥德巴赫猜想
哥德巴赫猜想原描述是“任一大于5的整数都可写成三个质数之和”,欧拉给出等价版本,即“任一大于2的偶数都可写成两个质数之和”,今日常见的陈述为欧拉版本。
成都创新互联自成立以来,一直致力于为企业提供从网站策划、网站设计、网站设计、网站建设、电子商务、网站推广、网站优化到为企业提供个性化软件开发等基于互联网的全面整合营销服务。公司拥有丰富的网站建设和互联网应用系统开发管理经验、成熟的应用系统解决方案、优秀的网站开发工程师团队及专业的网站设计师团队。
使用Java验证哥德巴赫猜想的代码如下(在代码中要求输入大于6的数字是因为4=2+2、6=3+3,算法直接从8开始验证):
package algorithms;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class GoldbachConjecture {
public static void main(String[] args) {
int i, j, n = 0, f1, f2, m = 0;
System.out.println("验证哥德巴赫猜想。");
System.out.println("输入一个大于6的偶数:");
BufferedReader rr = new BufferedReader(new InputStreamReader(System.in));
try {
m = Integer.parseInt(rr.readLine());
} catch (IOException e) {
}
for (i = 3; i m / 2; i += 2) {
f1 = f2 = 0;
for (j = 3; j = i / 2; j += 2) {
if (i % j == 0) {
f1 = 1;
break;
}
}
if (f1 == 1)// 如果i不是质数,下一个i
continue;
// 直到找到一个质数i,这是肯定可以找到的
n = m - i;
for (j = 3; j = n / 2; j += 2) {
if (n % j == 0) {
f2 = 1;
break;
}
}
if (f2 == 1)
continue;
else
break;
}
System.out.println("大于等于6的偶数" + m + "可以分解为:");
System.out.println(i + "与" + n + "两数之和");
}
}
java,验证哥德巴赫猜想,现成的代码,哪位大神帮忙读一下,尽量详细一点,本人这方面有点小白。
你这代码里面有错
这个代码里基本上都是数学概念,你先明白素数,质数,哥德巴赫猜想几个概念就行了。
public class Guess {
public static boolean Pan(int m) { // 定义静态返回为布尔型的函数Pan
for(int i=2; i = Math.sqrt(m); i++) { // 判断是否为素数
if(m % i == 0)//判断素数这个很简单,这个数除以从2开始到小于等于这个数的平方根的最大整数,如果余数为0,就不是素数
return false;//Math.sqrt(m)这个是开平方,%是取余,false你都拼错了
}
return true;
}
public static void main(String[] args) {
int n=0;//这里应该是n吧,看看你写的
for(int i=6; n = 100; n+=2) {//n从0开始,每次自增2,就是都是偶数了;n = 100;小于等于100,n+=2每次自增2
for(int a=3; a = n / 2; a+=2) {//因为偶数不是质数,偶数-偶数还是偶数,所以a从3开始就可以了,每次自增2,a就都是奇数
if((Pan(a)) (Pan(n - a))) {//先判断a是不是质数,再判断n-a是不是质数
System.out.print(n + "=" + a + "+" + (n - a) + "\t\t");
i++;//这个i没啥用,就是控制输出换行的
break;//如果求出两个素数了,就跳出循环,计算下一个数了
}
}
if(i % 4 == 0)
System.out.println();
}
}
}
如何用Java验证哥德巴赫猜想
@fucntion : 哥德巴赫猜想,任何一个大于6的偶数均可由两个素数这各组成。
@author : pppeee9
@date : 2009.03.22
@lastmodify: 2009.03.22
********************************************************************/
//package com.src;
import java.util.Scanner;
import java.lang.Math.*;
public class GeDe
{
public static void main(String args[])
{
System.out.println("请输入一个大于6的偶数");
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
for(int i=2;i=num-i;i++)
{
if((sushu(i))(sushu(num-i))) System.out.println(num+"="+i+"+"+(num-i));
}
}
public static boolean sushu(int n)
{
for(int i=2;i=(int)(Math.sqrt((double)n));i++)
{
if(n%i==0) return false;
}
return true;
}
}
参考百度
如何用Java验证哥德巴赫猜想?
哥德巴赫猜想原描述是“任一大于5的整数都可写成三个质数之和”,欧拉给出等价版本,即“任一大于2的偶数都可写成两个质数之和”,今日常见的陈述为欧拉版本。
使用Java验证哥德巴赫猜想的代码如下(在代码中要求输入大于6的数字是因为4=2+2、6=3+3,算法直接从8开始验证):
package algorithms;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class GoldbachConjecture {
public static void main(String[] args) {
int i, j, n = 0, f1, f2, m = 0;
System.out.println("验证哥德巴赫猜想。");
System.out.println("输入一个大于6的偶数:");
BufferedReader rr = new BufferedReader(new InputStreamReader(System.in));
try {
m = Integer.parseInt(rr.readLine());
} catch (IOException e) {
}
for (i = 3; i m / 2; i += 2) {
f1 = f2 = 0;
for (j = 3; j = i / 2; j += 2) {
if (i % j == 0) {
f1 = 1;
break;
}
}
if (f1 == 1)// 如果i不是质数,下一个i
continue;
// 直到找到一个质数i,这是肯定可以找到的
n = m - i;
for (j = 3; j = n / 2; j += 2) {
if (n % j == 0) {
f2 = 1;
break;
}
}
if (f2 == 1)
continue;
else
break;
}
System.out.println("大于等于6的偶数" + m + "可以分解为:");
System.out.println(i + "与" + n + "两数之和");
}
}
本文题目:java哥德巴赫猜想代码 java歌德巴赫猜想
文章链接:http://ybzwz.com/article/ddcieic.html