两种不同方法验证-10000以内满足哥德巴赫猜想的数

来源:互联网 发布:北京工业大学软件 编辑:程序博客网 时间:2024/06/05 07:45
哥德巴赫猜想:任一大于2的偶数都可写成两个质数之和
第一种方法:三重循环
<script>    var isGDBH = false;    for(var num=6;num<100;num+=2){//遍历6-1000的偶数        for(var i=1;i<num;i++){            var k=num-i;//将一个数随意拆分成两个数之和            var isGdbh1 = true;//先假设i是素数            for(var m=2;m<i;m++){// 验证i是否为素数                if(i%m==0){                    isGdbh1 = false;                }            }            var isGdbh2=true;//先假设k是素数            for(var n=2;n<k;n++ ){验证k是否为素数                if(k%n==0){                    isGdbh2=false;                }            }            if(isGdbh2&&isGdbh1){//当i和k都是素数时跳出该层循环,进行下一个偶数拆分                isGDBH = true;                break;            }else{//当有此时的两个数中有一个不是素数时,则继续将这个偶数拆分成其他的两个数之和在进行判断                continue;            }        }        if(isGDBH){            document.write(num+"满足哥德巴赫猜想"+"</br>");        }else{            document.write(num+"不满足哥德巴赫猜想"+"</br>");        }    }</script>
第二种方法:函数法
<script>    for (var i=8;i<10000;i+=2) {//遍历8-10000的所有偶数,去判断每一个偶数是否满足哥德巴赫猜想        if(isGdbh(i)){            document.write(i +"满足哥德巴赫猜想</br>");        }else{            document.write(i +"不满足哥德巴赫猜想</br>");        }    }   /*    函数的功能:判断一个偶数能否拆分为两个素数的和    函数的名字:isGdbh()    函数的参数:一个待判断的偶数    函数的返回值:flag/true    */    function isGdbh(num){        var flag=false;        for(var i=2;i<num;i++){             var k=num-i;            if(isPrime(i) && isPrime(k)){                flag=true;                break;            }else{                continue;            }        }        return flag;    }    /*     函数的功能:判断一个数是不是素数     函数的名字:isPrime     函数的参数:一个待判断的数     函数的返回值:true/false     */    function isPrime(num){        var flag=true;        for(var i=2;i<num;i++){            if(0==num%i){                flag=false;            }        }        return flag;    }</script>

阅读全文
0 0
原创粉丝点击