[爆卦]100天 的程式 碼是什麼?優點缺點精華區懶人包

為什麼這篇100天 的程式 碼鄉民發文收入到精華區:因為在100天 的程式 碼這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者hellokidding (Bad Trip)看板Python標題[問題] 想知道這行程式碼的意...


大家好~
想問大家一個簡單問題

這是github上面100天學會python的題目
是關於寫一個判斷是否為質數的迴圈

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)



想問的是第四行的:is_prime = True
(1)這行是什麼意思
(2)為什麼要有這行

問題蠻菜的,請大家見諒
在此也感謝大家的回答!

--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.71.68.210 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Python/M.1582128293.A.7B1.html
Philethan: 先假設是質數,然後開始用for迴圈判斷到底是不是質數02/20 00:12
Philethan: 對正整數N,若在(2,√N)內存在一數x,使N能被x整除,那02/20 00:13
Philethan: 就說x是N的因數,即N不是質數,is_prime = False。02/20 00:14
Philethan: 而在你找到這麼一個x時,你就確定它不是質數,所以剩下02/20 00:14
Philethan: 的(x,√N)內的整數就不需再被測試,也能直接跳出迴圈02/20 00:15
Philethan: 所以直接在 is_prime = False 後接上 break。02/20 00:15
Philethan: 然後就可以開始判斷了。02/20 00:16
Philethan: 一開始之所以需要有 is_prime = True,是因為你是藉由02/20 00:16
Philethan: 尋找是否存在著 num 的因數x來判斷num是否為質數02/20 00:17
Philethan: 一但你找到了,你就自然會說「不是」。因此你得考慮02/20 00:17
Philethan: 也就是 num %x == 0 永遠為 False,無法進入 if 設定02/20 00:18
Philethan: is_prime = False 的情況,那麼就是得事先預設02/20 00:18
Philethan: is_prime = True 了:找不到因數,則為質數02/20 00:18
moodoa3583: 宣告有if_prime 這個變數,之後才能用這個變數來做判02/20 00:51
moodoa3583: 斷02/20 00:51
cuteSquirrel: 因為程式碼是用因數整除刪去法來尋找質數02/20 01:03


感謝大大的回應!瞬間茅塞頓開!大感謝!
※ 編輯: hellokidding (111.71.68.210 臺灣), 02/20/2020 01:21:33

你可能也想看看

搜尋相關網站