列印101~200之間的素數(質數)for else一般方法滿足條件:即該數不能被除1和自己本身以外的數整除,
該數 %(除1和自己本身以外的數)!= 0
# 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...