首页 > 解决方案 > 测试列表的可分性并附加如果素数

问题描述

我正在为一个应该贯穿给定数字列表并附加任何素数的类编写一个简短的片段。现在它正在返回范围内的所有数字。

我在网上找到了如何做到这一点的示例,但想自己尝试一下,但我似乎碰壁了……这是我的代码:

from random import randrange
from time import sleep

def prime():
    user_num = eval(input("Input a number: "))
    list_prime = []
    for i in range(2,user_num):
        if (i % 2) == 1 and\
            (i % 3) == 1 and\
            (i % 4) == 1 and\
            (i % 5) == 1 and\
            (i % 6) == 1 and\
            (i % 7) == 1 and\
            (i % 8) == 1 and\
            (i % 9) == 1 or\
            i == 2:
            list_prime.append(i)

if list_prime == '':
    print('No prime numbers.')
if list_prime != '':
    print('\nPrime numbers from 1 to ' + str(user_num) + ': ' + str(list_prime))

sleep(1)
print('\nClosing console in 60 seconds...')
sleep(60)

prime()

标签: python-3.xprimes

解决方案


正如他所说,您没有正确检查素数。

from random import randrange
from time import sleep

list_prime = []
user_num = 0

def prime():
    user_num = eval(input("Input a number: "))
    for i in range(2,user_num):
        j = 2
        isprime = 1
        while (j <= i/2):
            if (i % j == 0):
                isprime = 0
                break
            j+=1
        if (isprime == 1):
            list_prime.append(i)

prime()
if list_prime == '':
    print('No prime numbers.')
if list_prime != '':
    print('\nPrime numbers from 1 to ' + str(user_num) + ': ' + str(list_prime))

sleep(1)
print('\nClosing console in 60 seconds...')
sleep(60)

推荐阅读