Topic: 根据“哥德巴赫猜想”如何用程序将6~100内的所有偶数都表示为两个素数之和。

  Print this page

1.根据“哥德巴赫猜想”如何用程序将6~100内的所有偶数都表示为两个素数之和。 Copy to clipboard
Posted by: Jasmin
Posted on: 2006-01-05 14:25

“哥德巴赫猜想”指出,每个大于6的偶数,都可以表示为两个素数的和。请问如何用程序将6~100内的所有偶数都表示为两个素数的和?

2.Re:根据“哥德巴赫猜想”如何用程序将6~100内的所有偶数都表示为两个素数之和。 [Re: Jasmin] Copy to clipboard
Posted by: fly_fish_2005
Posted on: 2006-01-06 13:48

public class ChangeIntToPrime {
/*
* function:判断temp是否为素数
*
* */
public boolean checkPrime(int temp){
boolean flag=true;
int i=(int)Math.sqrt(temp);
for(int j=2;j<=i;j++ ){
if(temp%j!=0){
continue;
}else{
flag=false;
j=i+1;
}
}
return flag;
}
/*
* function:将temp分解为两个素数之和并打印
*
* */
public void ChangeInt(int temp){
int i=(int)(temp/2);
for(int j=2;j<=i;j++){
if(checkPrime(j)){
int k=temp-j;
if(checkPrime(k)){
System.out.println("整数temp"+temp+"被分解为素数"+j+"和素数"+k+"之和");
break;
}
}else{
continue;
}
}
}
public static void main(String []args){
ChangeIntToPrime ch=new ChangeIntToPrime();
for(int i=6;i<=100;i=i+2){
ch.ChangeInt(i);
}
}
}

3.Re:根据“哥德巴赫猜想”如何用程序将6~100内的所有偶数都表示为两个素数之和。 [Re: Jasmin] Copy to clipboard
Posted by: Jasmin
Posted on: 2006-01-08 18:51

十分感谢fly_fish_2005出手相助~~~~~!!!!

4.Re:根据“哥德巴赫猜想”如何用程序将6~100内的所有偶数都表示为两个素数之和。 [Re: Jasmin] Copy to clipboard
Posted by: Jasmin
Posted on: 2006-01-09 08:43

为什么会有这么多个public的呢???

5.Re:根据“哥德巴赫猜想”如何用程序将6~100内的所有偶数都表示为两个素数之和。 [Re: Jasmin] Copy to clipboard
Posted by: why
Posted on: 2006-01-09 10:19

Jasmin wrote:
为什么会有这么多个public的呢???

這有何問題?
閣下不喜歡的話, 可以改這些public method--except the main method, of course
只要不是兩個public class 就行

6.Re:根据“哥德巴赫猜想”如何用程序将6~100内的所有偶数都表示为两个素数之和。 [Re: Jasmin] Copy to clipboard
Posted by: Jasmin
Posted on: 2006-01-15 23:56

以下程序可行吗??

class ChangeIntToPrime
{
public static void main(String[] args)
{
for( int a=6 ; a<=100 ; a+=2 )
{
for( int i=2 ; i<a ; i++ )
{ if( isPrime(i) && isPrime(i-a))
{
System.out.println(a+"="+i+"+"+(a-i));
break;
}
}
}
}
public static boolean isPrime(int m)
{
for( int i=2 ; i<m-1 ; i++)
{
if(m%i==0) return false;
}
return true;
}
}

7.Re:根据“哥德巴赫猜想”如何用程序将6~100内的所有偶数都表示为两个素数之和。 [Re: Jasmin] Copy to clipboard
Posted by: konn
Posted on: 2006-03-06 16:30

class chenk
{
static boolean isPrime(int j)
{ int i,k;
k=(int)Math.sqrt(j); //求根号
for(i=2;i<=k && (j%i)!=0 ;i++) ;
return i>k;
}

static boolean isok(int i)
{ int j;
for (j=3;isPrime(j) || j<=i/2;j++ )
if (isPrime(i-j))
{//System.out.println(i+"="+j+" +"+(i-j) );
return true ; }
return false;
}

public static void main(String[] args)
{
while (i<=100 && i>=6)
{ if (i%2==0)
{ countofeven++; //计算偶数
countofok=isok(i)?countofok+1:countofok; //计算符合
//猜想的数
}
i+=2;
}

System.out.println("哥德巴赫猜想"+(countofok==countofeven));
}
}


   Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent
Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1
客服电话 18559299278    客服信箱 714923@qq.com    客服QQ 714923