素數指的是只能被1和自身整除的大於1的整數
對於每個數num,並不需要從2判斷到num-1,這樣效率很低。
假若乙個數可以進行因式分解,那麼分解得到的兩個數必將有乙個小於等於sqrt(num),另乙個大於等於sqrt(num).
所以,我們只要遍歷sqrt(num)即可,因為在sqrt(num)左側找不到約數,那麼右側必然也找不到約數。
from math import sqrt
num=int(input("請輸入乙個正整數:"))
end=int(sqrt(num))
is_prime=true
for x in range(2,end+1):
if num % x ==0 :
is_prime=false
break
if is_prime and num!=1:
print('%d是素數' % num)
else:
print('%d不是素數' % num)
Python判斷乙個正整數是否為素數的演算法
先定義乙個有序列表,作為素數池,這樣多次操作的時候可以直接用裡面的素數作為取模的除數,以避免用冗餘的合數來運算和重複性的運算 primepool 2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,79,83,89,97,101,103,1...
判斷乙個整數是否為素數 確定乙個整數是否是2的冪
給定乙個整數,編寫乙個函式來確定它是否是2的冪。範圍 1 2 31 1 測試用例 輸入 16,輸出 true 因為 2 4 16 輸入 18,輸出 false.最明顯的暴力方法就是除以2,然後檢查它是否達到1。var poweroftwo function n 由於給出的範圍在0 2 31 1之間,...
編寫函式判斷乙個整數是否為素數
題目內容 編寫函式int isprime int a 用來判斷整數a是否為素數,若是素數,函式返回1,否則返回0。呼叫該函式找出任意給定的n個整數中的素數。注意,1不是素數。輸入格式 一系列待判斷的正整數,以空格隔開,以0表示輸入結束。輸出格式 只輸出輸入的正整數中的素數,順序和輸入一致。資料間以乙...