[英]I am getting incorrect output from prime number script
從這個腳本得到錯誤的輸出。
#!/usr/bin/python
numbers = [1,3,5,7,8,25]
def primes():
for i in numbers:
if i > 1:
if (i % 2) == 0:
print "not prime"
else :
print "prime"
打印素數()
它說 25 是素數,知道為什么嗎?
您的程序正在檢查數字是否為奇數,而不是它們是否為質數。 這是您想要的驗證(來自此頁面)
# prime numbers are greater than 1
if num > 1:
# check for factors
for i in range(2,num):
if (num % i) == 0:
print(num,"is not a prime number")
print(i,"times",num//i,"is",num)
break
else:
print(num,"is a prime number")
import math
numbers = [1,3,5,7,8,25]
def primes(n):
if n == 2:
return True
if n%2 == 0 or n <= 1:
return False
sqr = int(math.sqrt(n)) + 1
for divisor in range(3, sqr, 2):
if n%divisor == 0:
return False
return True
for i in numbers:
print i, '\t', primes(i)
您的代碼將只檢查奇數或偶數。 不是為素數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.