簡體   English   中英

我從素數腳本得到不正確的輸出

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

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