任何大于6的偶数都可以表示为两个素数之和,如 8 = 3 + 5;
任何大于6的奇数都可以表示为三个素数之和,如 11 = 3 + 3 + 5
----------------解决方案--------------------------------------------------------
高深,不懂。。
----------------解决方案--------------------------------------------------------
计算机只能验证有限个吧
证明是证明不出来的,至少我不会。
你该去求助数学高人。
----------------解决方案--------------------------------------------------------
/**
* @(#)MyTest.java
*
*
* @author if
* @version 1.00 2007/3/24
*/
import java.util.Scanner;
public class MyTest {
public static void main(String[] args){
Scanner in=new Scanner(System.in);
MyTest test=new MyTest();
System.out.println("input you number:");
int n=in.nextInt();
test.getGeDeBaChe(n);
}
private void getGeDeBaChe(int n){
boolean isDouble=isDoubleNumber(n);
if(isDouble){
for(int x=3;x<n/2;x+=2){
if(isPrime(x)){
int y=n-x;
if(isPrime(y)){
System.out.println(n+"="+x+"+"+y);
break;
}
}
}
}else{
System.out.println("not number");
}
}
private boolean isDoubleNumber(int num){
if(num%2==0)
return true;
else
return false;
}
private boolean isPrime(int num){
int n=(int)(Math.sqrt(num));
for(int i=2;i<=n;i++){
if(num%i==0)
return false;
}
return true;
}
}
----------------解决方案--------------------------------------------------------
楼上的,
----------------解决方案--------------------------------------------------------
import java.util.Scanner;
public class Zhi {
public boolean isShu(int n){
for(int x=2;x<n;x++){
if (n%x==0) return false;
}
return true;
}
public void cai(int m){
if((m>6)&&(m%2==0)){
for(int i=3;i<=m/2;i++){
int t=m-i;
boolean a=isShu(i);
boolean b=isShu(t);
if((a==true)&&(b==true)){
System.out.println(i+" "+t);
}
}
}
}
public static void main(String[] args){
Scanner sg=new Scanner(System.in);
int h=sg.nextInt();
Zhi st=new Zhi();
st.cai(h);
}
}
第1个这样写的!~第2个与第1个类似!~自己漫漫想!~
----------------解决方案--------------------------------------------------------
好的,谢谢~
----------------解决方案--------------------------------------------------------