簡體   English   中英

Python-檢查它是否是素數

[英]Python - check if it's prime number

我知道這個問題被問了太多次了,但是我並不是在尋找最快的算法。 我只想知道我的代碼在做錯什么,因為它有問題。

import math

def is_prime(number):
    for i in range (2, 1+ int(math.sqrt(number))):
        if number % i == 0:
            return 0
        else:
            return 1

choice = int(input("Check if it's prime: "))
if is_prime(choice):
    print ("{} is a prime number".format(choice))
else:
    print ("{} is not a prime number".format(choice))

如果我測試該程序的大多數數字,它將返回正確的響應,但是如果我檢查任何平方數,它將說它是質數。 所以有什么建議我做錯了嗎?

總是在循環的第一次迭代中立即返回。

相反,只有在您知道它不是素數時才立即返回,否則繼續進行:

def is_prime(number):
    for i in range (2, 1+ int(math.sqrt(number))):
        if number % i == 0:
            return 0
    return 1

暫無
暫無

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

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