我的程序的一部分根据用户的输入显示n个素数,但不管我输入什么,它只打印“1”
def listPrimeNumbers():
print("List Prime Numbers")
print("------------------")
print("Enter how many prime numbers you want displayed")
print("Type in '0' to go back to the Main Menu")
print("\n"*10)
amountOfNumbers = int(input("Amount of Numbers --> "))
print("\n"*10)
for i in range(1, amountOfNumbers):
prime = True
for i in range(2,i):
if (num%i==0):
prime = False
if prime:
print(i)
print("\n"*10)
print("Type '0' to try again and '1' to go to the main menu")
print("\n"*10)
choice = int(input("Choice ---> "))
if choice == 0:
print("\n"*100)
listPrimeNumbers()
elif choice == 1:
print("\n"*100)
main()
如果我正确地理解了这个问题,那么代码中就有一个逻辑缺陷,因为即使亚历克斯建议了更正(这是有效的),您也只需要打印出所有的数字,这些数字的素数等于用户输入的值,而不是用户输入的量,这似乎是个问题。你知道吗
例如,给定您的问题,如果用户输入10,我理解您应该打印前10个素数(1,2,3,5,7,11,13,17,19,23),而不是最多10个素数(1,2,3,5,7)
如果我的假设是正确的,代码应该是这样的:
我省略了重复这个过程的部分,所以您需要重新运行程序以再试一次
将“for”循环更改为:
num在你的代码中没有定义,我想这就是你的意思。你知道吗
你怎么称呼你的密码?照现在的样子,我跑不了。我通过在底部添加对函数listPrimeNumbers()的调用来运行它。你知道吗
不管怎样,假设你发布的代码是你的全部代码,这就是对我有效的版本:
相关问题 更多 >
编程相关推荐