我正在为一项作业做一个素数生成器。我一整天都在这样做,我开始觉得我很困惑。它的目的是接受输入并列出所有质数且小于条目数的数字。我怎样才能回到正轨?
代码如下:
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")
感谢杰森哈珀的帮助。所有的代码真的让我头晕目眩。我仍然花了几个小时来理清我自己编码带来的混乱。
如果最终结果如下:
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 = ",")