您的位置:首页 > Web前端 > JavaScript

JS程序验证哥德巴赫猜想

2017-11-20 18:12 211 查看
在8-10000内验证哥德巴赫猜想:任何一个大于6的偶数都可以拆分为两个素数的和。

方法一:for循环的嵌套

var isGDBH
= false;
for (var
i
=8;i<10000;i+=2){//遍历8-10000的所有偶数,去判断每一个偶数是否满足哥德巴赫猜想

    for(varj=2;j<i;j++){

        var k
= i -j;

        var isprime1
= true;

        for(var
num1
=2;num1<j;num1++){//判断j是不是素数

         if(
j
% num1==0){

             isprime1 =
false;

          }

        }

        var isprime2
= true;

        for(var
num2
=2;num2<k;num2++){//判断k是不是素数

            if(
k
% num2==0){

                isprime2 =
false;

           }

        }

        if(isprime1
&& isprime2){

            isGDBH =
true;

            break;

        }else{

            continue;

              }

    }

    if(isGDBH){

        document.write(i
+"满足哥德巴赫猜想"+"="+j+"+"+k+"</br>");

    }else{

        document.write(i
+"不满足哥德巴赫猜想"+"</br>");

    }

}

方法二:调用函数

//函数的功能:判断一个数是不是素数
 //函数的名字:isprime
 //函数的参数:一个待判断的数
 //函数的返回值:true/false

//函数的功能:判断一个偶数能否拆分为两个素数的和
//函数的名字:isgdbh
//函数的参数:一个待判断的数
//函数的返回值:true/false

 for (var i=8;i<10000;i+=2){//遍历8-10000的所有偶数,去判断每一个偶数是否满足哥德巴赫猜想
     if(isgdbh(i)){
         document.write(i +"满足哥德巴赫猜想"+"</br>");
     }else{
         document.write(i + "不满足哥德巴赫猜想"+"</br>");
     }
 }
function isgdbh(num){
    var flag = false;
    for(var i=2;i<num;i++){
        if(isprime(i)&& isprime(num - i)){
            flag = true;
            break;
        }else{
            continue;
        }
    }
    return flag;
}
function isprime(num){
    var flag = true;
    for(var j=2;j<num;j++){
        if(num % j ==0){
            flag = false;
        }
    }
    return flag;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: