您的位置:首页 > 编程语言 > Java开发

哥德巴赫猜想(JAVA)

2018-01-14 01:06 162 查看

哥德巴赫猜想

/**
* 输入一个偶数证明其总能表示为两个素数之和。
*
* @author zengxin
*
*/
public class Page06哥德巴赫猜想 {
public static void main(String[] args) {

Scanner sc = new Scanner(System.in);
try {
while(true){
System.out.println("请输入一个偶数:");
int n = sc.nextInt();
if(n<=2){
System.out.println("请输入一个大于2的偶数");
continue;
}

if(n%2!=0){
System.out.println("输入错误,请输入一个偶数:");
continue;
}

for(int i=1;i<=n/2;i++){//(i<=n/2)避免重复的组合
/**
* 当i>2时,偶数都不可能为是素数
*/

int j = n-i;

if(isPrime(i) && isPrime(j)){
System.out.println(i+"+"+j+"="+(i+j));
}
}
}

} catch (Exception e) {
e.printStackTrace();
}finally {
sc.close();
}

}

//判断是否为素数
private static boolean isPrime(int n){
if(n<3){//2,3为最小的素数
return n>1;
}
for(int i=2; i<Math.sqrt(n);i++  ){
if(n%i==0){
return false;
}

}
return true;

}
}


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: