java哥德巴赫猜想代碼 java歌德巴赫猜想

如何用java程序證明哥德巴赫猜想

哥德巴赫猜想原描述是“任一大于5的整數(shù)都可寫成三個質(zhì)數(shù)之和”,歐拉給出等價版本,即“任一大于2的偶數(shù)都可寫成兩個質(zhì)數(shù)之和”,今日常見的陳述為歐拉版本。

成都創(chuàng)新互聯(lián)自成立以來,一直致力于為企業(yè)提供從網(wǎng)站策劃、網(wǎng)站設(shè)計(jì)、網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、電子商務(wù)、網(wǎng)站推廣、網(wǎng)站優(yōu)化到為企業(yè)提供個性化軟件開發(fā)等基于互聯(lián)網(wǎng)的全面整合營銷服務(wù)。公司擁有豐富的網(wǎng)站建設(shè)和互聯(lián)網(wǎng)應(yīng)用系統(tǒng)開發(fā)管理經(jīng)驗(yàn)、成熟的應(yīng)用系統(tǒng)解決方案、優(yōu)秀的網(wǎng)站開發(fā)工程師團(tuán)隊(duì)及專業(yè)的網(wǎng)站設(shè)計(jì)師團(tuán)隊(duì)。

使用Java驗(yàn)證哥德巴赫猜想的代碼如下(在代碼中要求輸入大于6的數(shù)字是因?yàn)?=2+2、6=3+3,算法直接從8開始驗(yàn)證):

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("驗(yàn)證哥德巴赫猜想。");

System.out.println("輸入一個大于6的偶數(shù):");

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不是質(zhì)數(shù),下一個i

continue;

// 直到找到一個質(zhì)數(shù)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的偶數(shù)" + m + "可以分解為:");

System.out.println(i + "與" + n + "兩數(shù)之和");

}

}

java,驗(yàn)證哥德巴赫猜想,現(xiàn)成的代碼,哪位大神幫忙讀一下,盡量詳細(xì)一點(diǎn),本人這方面有點(diǎn)小白。

你這代碼里面有錯

這個代碼里基本上都是數(shù)學(xué)概念,你先明白素?cái)?shù),質(zhì)數(shù),哥德巴赫猜想幾個概念就行了。

public class Guess {

public static boolean Pan(int m) { // 定義靜態(tài)返回為布爾型的函數(shù)Pan

for(int i=2; i = Math.sqrt(m); i++) { // 判斷是否為素?cái)?shù)

if(m % i == 0)//判斷素?cái)?shù)這個很簡單,這個數(shù)除以從2開始到小于等于這個數(shù)的平方根的最大整數(shù),如果余數(shù)為0,就不是素?cái)?shù)

return false;//Math.sqrt(m)這個是開平方,%是取余,false你都拼錯了

}

return true;

}

public static void main(String[] args) {

int n=0;//這里應(yīng)該是n吧,看看你寫的

for(int i=6; n = 100; n+=2) {//n從0開始,每次自增2,就是都是偶數(shù)了;n = 100;小于等于100,n+=2每次自增2

for(int a=3; a = n / 2; a+=2) {//因?yàn)榕紨?shù)不是質(zhì)數(shù),偶數(shù)-偶數(shù)還是偶數(shù),所以a從3開始就可以了,每次自增2,a就都是奇數(shù)

if((Pan(a)) (Pan(n - a))) {//先判斷a是不是質(zhì)數(shù),再判斷n-a是不是質(zhì)數(shù)

System.out.print(n + "=" + a + "+" + (n - a) + "\t\t");

i++;//這個i沒啥用,就是控制輸出換行的

break;//如果求出兩個素?cái)?shù)了,就跳出循環(huán),計(jì)算下一個數(shù)了

}

}

if(i % 4 == 0)

System.out.println();

}

}

}

如何用Java驗(yàn)證哥德巴赫猜想

@fucntion : 哥德巴赫猜想,任何一個大于6的偶數(shù)均可由兩個素?cái)?shù)這各組成。

@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的偶數(shù)");

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驗(yàn)證哥德巴赫猜想?

哥德巴赫猜想原描述是“任一大于5的整數(shù)都可寫成三個質(zhì)數(shù)之和”,歐拉給出等價版本,即“任一大于2的偶數(shù)都可寫成兩個質(zhì)數(shù)之和”,今日常見的陳述為歐拉版本。

使用Java驗(yàn)證哥德巴赫猜想的代碼如下(在代碼中要求輸入大于6的數(shù)字是因?yàn)?=2+2、6=3+3,算法直接從8開始驗(yàn)證):

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("驗(yàn)證哥德巴赫猜想。");

System.out.println("輸入一個大于6的偶數(shù):");

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不是質(zhì)數(shù),下一個i

continue;

// 直到找到一個質(zhì)數(shù)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的偶數(shù)" + m + "可以分解為:");

System.out.println(i + "與" + n + "兩數(shù)之和");

}

}

網(wǎng)頁標(biāo)題:java哥德巴赫猜想代碼 java歌德巴赫猜想
文章出自:http://muchs.cn/article2/ddcieic.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供、Google電子商務(wù)、靜態(tài)網(wǎng)站、響應(yīng)式網(wǎng)站、品牌網(wǎng)站設(shè)計(jì)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都app開發(fā)公司