思路為:
1->2是質數,所有是偶數的都是2的倍數一定不是質數(除了2,偶數一定不是質數,因此我們不需要考慮任何偶數)
2.->從3開始考慮到n的奇數,其中某個數,如3的所有整數倍的數都不是質數,我們需要找到不小於n為止,即全部考慮到
->這樣的話,當我們遍歷到9的時候,因為9不是第一次出現,他已經被3考慮為非質數了。
//**如下:
public//當我們為3的時候已經把n內所有3的倍數都設定過了,當為5的時候我們就沒必要再去設定*3了,當為7的時候就沒有必要設定*3和*5的了,由此我們優化為下方**int countprimes(int
n) }
}return
res;
}
每次直接從他的本身為倍數起始即可!
public如果求前n個(不包含n)全部的質數陣列則**如下:int countprimes(int
n) }
}return
res;
}
publicstatic
int getprimes(int
n) }
}int res=new
int[count+1];
res[0]=2;
int index=1;
for(int i=3;i)
}return
res;
}
判斷是否為質數
程式接受兩個正整數的輸入,構成乙個閉區間,找出這個區間內的所有質數。判斷乙個數n是否為質數時,先對這個數開平方,隨後從2開始,迴圈到這個平行根,檢查其中的數能否整除數n,若能整除,則為合數,否則為質數。由於sqrt函式的返回值是double型別,為保證準確性 如sqrt 4 返回值可能是1.9999...
判斷是否為質數 c 實現)
01 判斷是否為質數 描述 輸入正整數a,判斷是否為質數 a 106 輸入一行乙個正整數a 輸出如果a是質數,則輸出a shi zhi shu 如果a不是質數,則輸出a bu shi zhi shu。格式請參考樣例 樣例輸入 31樣例輸出 31 shi zhi shu filename isprim...
Python 判斷是否為質數或素數
乙個大於1的自然數,除了1和它本身外,不能被其他自然數 質數 整除 2,3,5,7等 換句話說就是該數除了1和它本身以外不再有其他的因數。首先我們來第乙個傳統的判斷思路 def handlernum num 質數大於 1 if num 1 檢視是否有其他因子 for i in range 2,num...