簡體   English   中英

Prime function 在合數中不起作用 (4)

[英]Prime function doesn't work in a composite number (4)

我運行了以下代碼:

def isprime(number):
    prime=True
    result=""
    for i in range(2, number//2):
        if number%i==0:
            prime=False
            break
    if(bool(prime)):
        result="Prime"
    else:
        result="Not prime"
    return  result

編號之前給了 function。 我運行它並輸入 number=4,但它返回 Prime 你能幫我嗎? 幾個小時前我才開始學習 python。

首先,讓我們明確這是一個編程問題,而不是 Python 問題——你的算法在任何計算機語言中都會失敗。 結合評論中的所有建議,再加上一些額外的優化,我們得出了如下結論:

def isprime(number):
    if number < 2:
        return False

    if number % 2 == 0:
        return number == 2

    for divisor in range(3, int(number ** 0.5) + 1, 2):
        if number % divisor == 0:
            return False

    return True

if isprime(int(input("Enter a number: "))):
    print("Prime")
else:
    print("Not prime")

暫無
暫無

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

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