所以我對Python很新,想知道爲什麼這些代碼不適用於某些數字。 (例如,12和60)(編輯:它只是說一個因素,那就是不是素數有12個是4,和60是12)爲什麼不在Python中最大的主要因素代碼
def Prime(var):
for n in range(var-1, 1, -1):
if var % n == 0:
for x in range(2, n):
if n % x == 0:
n = n-1
continue
else:
if (var % n == 0):
print("the largest prime factor of", var, "is", n)
break
n = n-1
continue
break
else:
print(var, "is already a prime number")
Im相當肯定,有多個線路代碼是不需要的,而且這段代碼簡直沒有效率,但是我不明白爲什麼這樣做不起作用。所以,如果有人能幫助我解決這個問題,那就太好了。
在此先感謝
解釋**如何**它不起作用。有沒有錯誤,或者它只是產生錯誤的輸出? – m0dem
@JohnColeman我懷疑第一行的所有內容都需要縮進一層,這是因爲OP不熟悉SO代碼塊的工作原理。 –
在Stack Overflow中發佈代碼可能會非常棘手。在諸如Java這樣的語言中,這並不重要,但是在Python中,它可能會無可救藥地歪曲邏輯。在實踐中,我們可以猜出你的意思,但有時候我們猜錯了。我建議簡單地刪除代碼,然後在閱讀以下內容後將它重新加入:https://meta.stackexchange。com/questions/22186/how-do-i-format-my-code-blocks –