在范围python中查找素数

时间:2017-04-20 15:35:59

标签: python list python-3.x loops position

我应该编写一个程序来改变一个字符串,如果该位置编号不是一个素数,但我似乎无法弄清楚如何制作第一个位置,例如位置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)

2 个答案:

答案 0 :(得分:1)

首先,您可能会收到错误,因为范围采用整数而不是生成器,而是尝试for i in n_listfor 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.你只能检查一个数字是否可以。

希望这会有所帮助并祝你好运。

编辑:澄清一下,还有更多问题,但这两个问题会产生错误。