Python 三種不同方法求素數

2021-10-10 23:13:57 字數 1081 閱讀 3154

列印101~200之間的素數(質數)

滿足條件:即該數不能被除1和自己本身以外的數整除,

該數 %(除1和自己本身以外的數)!= 0

for else一般方法

# for else

# for i in range(101,201):

# for j in range(2,i):

# if i % j == 0:

# break

# else:

# print(i,'是質數')

假設成立法

# 使用假設成立法求質數

for i in

range

(101

,201):

flag =

true

for j in

range(2

,int

(i **

0.5)+1

):# for j in range(2,i):

if i%j ==0:

flag =

false

break

if flag:

print

(i,'是質數'

)

計數法

# 使用計數法求質數

for i in

range

(101

,201):

count =

0# 假設這個數能被0個數字整除

for j in

range(2

,i):

# for j in range(2,i):

if i % j ==0:

count +=

1if count ==0:

print

(i,'是質數'

)else

:print

(i,'是合數,能被'

,count,

'個數整除'

)

求素數的三種方法

具體篩法是 先把n個自然數按次序排列起來。1不是質數,也不是合數,要划去。第二個數2是質數留下來,而把2後面所有能被2整除的數都劃去。2後面第乙個沒劃去的數是3,把3留下,再把3後面所有能被3整除的數都劃去。3後面第乙個沒劃去的數是5,把5留下,再把5後面所有能被5整除的數都劃去。這樣一直做下去,就...

三種素數篩選方法

第一種 剔除2 3 4 5 6 的倍數 在i從2開始的增一變化過程中,剔除i的倍數即j i j是大於等於2的自然數,j的上限是問題規模m 為了減少重複步驟,可以每當i遞增到等於第乙個沒有被剔除的 素 數時再剔除該數的倍數,重複上述過程至i到達問題規模m的平方根 1 需要說明的三個問題 假設迴圈到第n...

素數篩選的三種方法

第一種 剔除2 3 4 5 6 的倍數 在i從2開始的增一變化過程中,剔除i的倍數即j i j是大於等於2的自然數,j的上限是問題規模m 為了減少重複步驟,可以每當i遞增到等於第乙個沒有被剔除的 素 數時再剔除該數的倍數,重複上述過程至i到達問題規模m的平方根 1 需要說明的三個問題 假設迴圈到第n...