[英]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.