簡體   English   中英

質數檢查 function 不適用於測試用例

[英]Prime number checking function not working on a test case

我對編碼很陌生,但我的代碼有問題。 該代碼似乎適用於每個測試編號,我可以說出原因。

num1 = int(input('Please enter a positive integer: '))

def is_prime(x):
    if x <= 1 :
        return False
    elif x == 2:
        return True
    for n in range(3,x-1,2):
        if x % n == 0:
            return False

    return True

print(is_prime(num1))

4在應該為False時返回True值。

這是你的罪魁禍首:

for n in range(3,x-1,2):
    if x % n == 0:
        return False

return True

您的range的步長項是從 3 開始的 2,因此未測試 4。 因為它沒有經過測試,所以您的 function 只會返回True

您可以通過在您的范圍之前添加另一個elif檢查輸入 mod 2 來天真地解決此問題。

def is_prime(x):
    if x <= 1 :
        return False
    elif x == 2:
        return True
    elif x % 2 == 0:
        return False

    for n in range(3,x-1,2):
        if x % n == 0:
            return False

    return True

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM