首页 > 数据库技术 > 详细

验证GoldBach conjecture

时间:2017-03-05 00:51:44      阅读:286      评论:0      收藏:0      [点我收藏+]

  验证哥德巴赫猜想:任意一个大于6的偶数,都能分解成2个质数的和。


代码:

package gold1;
import java.util.*;
public class TestGoldBach{
    public static void main(String[] args){
        //首先创建一个扫描仪
        Scanner sc=new Scanner(System.in);
        System.out.print("请输入一个大于6的偶数:");
        //写一个do while循环,如果输入错误继续输入
        int n;    //在循环外先定义一个变量n
        do{ 
            n=sc.nextInt();   
            if( n%2!=0 || n<=6){
                System.out.print("输入错误,请重新输入:");
            }
        }while(n%2!=0 || n<=6);
        //确定n正确以后,把n分解成2个数并调用判断质数的函数
        for(int i=2;i<=n/2;i++){    //i<=n/2 是为了不让遍历到的i和n-i的两个值发生重复
            if( isPrime(i)&&isPrime(n-i) ){
                System.out.print(n+"="+i+"+"+(n-i));
            }
        }
    }
    //写一个判断质数的函数
    public static boolean isPrime(int n){
        for(int i=2;i<=n/2;i++){    //判断一个质数要判断,它能不能再除尽某一个数
            if(n%i==0) return false;    //如果除以大于它二分之一的数必然除不尽的
        }
        return true;    //返回给调用者一个布尔值
    }
}


注:①一个质数是除了1和它本身没有别的因子的数。质数不包括1和它本身

  ②<n/2 的目的是避免重复

本文出自 “ChristianWyld's Blog” 博客,请务必保留此出处http://wyld123.blog.51cto.com/12619448/1903225

验证GoldBach conjecture

原文:http://wyld123.blog.51cto.com/12619448/1903225

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!