哥德巴赫猜想:任一大于2的偶數都可寫成兩個質數之和
1.封裝一個函式 isPrime() 判斷n是不是質數
2.封裝一個函式 getPrimeLessThen() 獲取小于n的所有質數
函式內用for回圈遍歷從2到n如果是質數就將其放進陣列arr[ ]
回傳陣列arr
3.通過for回圈 遍歷1000之內大于4的偶數寫成兩個質數的和
通過getPrimeLessThen() 函式把小于 i 的所有質數放進arr
再遍歷陣列arr[ ] 每一個陣列元素賦給變數first
再將 i 減first的值賦給第二個數second
最后判斷第二個數second是否是質數(isPrime)
如果first和second都是質數的話輸出在控制臺
輸出一次break跳出回圈
<!-- 質數:有且只有自己和1兩個因數 -->
<!-- 大于4的偶數能夠寫成兩個質數和,1000寫成4=1+3,6=3+3 8=3+5 -->
<script>
// 封裝一個判斷是否是質數函式
function isPrime(n){
if(n<3){
return true
}
for(var i=2 ;i<n;i++){
if(n%i==0){
return false
}
}
return true
}
var result = isPrime(9)
console.log(result);
//8= 3+5
//獲取小于n的所有質數
function getPrimeLessThen(n){
var arr=[]
for(var i=2;i<n;i++){
if(isPrime(i)){
arr.push(i)
}
}
return arr
}
console.log(getPrimeLessThen(9));
//1000之內所有大于4的偶數寫成兩個質數的數
//i= a+b
for(var i=4;i<1000;i=i+2){
var arr = getPrimeLessThen(i)//把小于i的所有質數放進arr
for(var j = 0;j<arr.length;j++){
var first=arr[j]
var second = i-first
if(isPrime(second)){
console.log(i+"="+first+"+"+second);
break
}
}
}
</script>
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/300255.html
標籤:其他
