我应该编写一个程序来改变一个字符串,如果该位置编号不是一个素数,但我似乎无法弄清楚如何制作第一个位置,例如位置2,素数和制作其余可以被2整除的位置,变成N.下面是我目前所拥有的并且我是一个int错误。如果有人可以帮助我,我会非常感激。谢谢
while True:
number = int(input("Enter a number greater than 10: "))
if number < 10:
print("Invalid input. Try again")
else:
break
n_list = ["P"] * (number + 1)
n_list[0] = "N"
n_list[1] = "N"
for i in range(n_list):
if int(n_list[i]) % 2 == 0:
n_list[i] = "N"
print(n_list)
答案 0 :(得分:1)
首先,您可能会收到错误,因为范围采用整数而不是生成器,而是尝试for i in n_list
或for i in range(len(n_list))
。至于问题的解决方法,你不需要从2循环到n,有一种更聪明的方法。但我们不是为您解决这个问题,而是为了引导您找到您可能向我们提出的最终错误。对此说,祝你好运!
PS: 多一点指导 Sieve of Eratosthenes
编辑: 我所指的错误是
TypeError: 'list' object cannot be interpreted as an integer
答案 1 :(得分:0)
我不想给你作业的答案,但我确实想帮忙,所以我会指导你一点。
我发现您提供的内容存在两个问题。首先,您在范围内使用了不正确的变量。你想要一个数字,而不是一个列表。
其次,你不能比较&#34; P&#34;是可分的2.你只能检查一个数字是否可以。
希望这会有所帮助并祝你好运。
编辑:澄清一下,还有更多问题,但这两个问题会产生错误。