使用素数生成器出了轨

问题描述 投票:0回答:1

我正在为一项作业做一个素数生成器。我一整天都在这样做,我开始觉得我很困惑。它的目的是接受输入并列出所有质数且小于条目数的数字。我怎样才能回到正轨?

代码如下:

print("Please enter a number other than 1, and if the number is prime, all prime numbers of lesser value will be listed:")
entryNum = int(input())
#Sets the number to entryNum
primeNums = []
if entryNum == 1:
    print("That number is beyond the confines of definition here.")
elif entryNum % 2 == 0:
    print("This number is not prime, it is composite. Most even numbers are composite.")
elif entryNum == 2:
    print("There are no primary numbers below 2. Some may argue that 1 is, but those individuals should really make a strong argument for it.")
else:

    counter = 2
    while counter < entryNum:
        if entryNum % counter == 0:
            primeNums.append(counter)
            counter+=1
        else:
            counter+=1 
#Prime number tester and adder

    print("The prime numbers less than", entryNum, "are:")

    print(''.join(str(primeNums)))
    print("fun")
list function iteration
1个回答
0
投票

感谢杰森哈珀的帮助。所有的代码真的让我头晕目眩。我仍然花了几个小时来理清我自己编码带来的混乱。

如果最终结果如下:

print("Please enter a number other than 1, and if the number is prime, all prime numbers of lesser value will be listed:")
entryNum = int(input())
#Sets the number to entryNum
primeNums = []
counter = 2

def isPrime(n):
    if n == 1:#Test to see if 1 was entered
        return False
    elif n % 2 == 0:#Test to see if its even
        return False
    for i in range(2,n):#Test to see if there are any factors
        if n % i == 0:
            return False
    else:#Returns true, allowing a number to be confirmed as prime
        return True  

if isPrime(entryNum) is True:
    print("Def is prime, dude, fo sho. Bellow are all the other prime numbers of lesser value")
    while counter < entryNum:
        if isPrime(counter) is True:
            primeNums.append(counter)
            counter+=1
        else:
            counter+=1 
else:
    print("this number is not prime")

print(*primeNums, sep = ",")
© www.soinside.com 2019 - 2024. All rights reserved.