第一种方法:三重循环
<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>