在一个范围内寻找质数python

2024-04-26 12:58:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我应该写一个程序来改变一个字符串,如果这个位置号不是质数,但我似乎不知道如何使第一个位置,例如位置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)

Tags: 字符串程序truenumberinputif错误素数
2条回答

我不想给你家庭作业的答案,但我确实想帮忙,所以我会给你一点指导。在

我看到你提供的有两个问题。首先,您使用的变量范围不正确。你想要的是一个数字,而不是一个列表。在

其次,你不能比较“p”是否是2的等分。您只能检查数字是否为。在

希望这有帮助,祝你好运。在

编辑:为了澄清,有更多的问题,但这两个会给错误。在

首先,您可能会得到一个错误,因为range是一个整数,而不是生成器,请尝试使用for i in n_list或{}。至于问题的解决方法,你不需要从2循环到n,有一个更聪明的方法。但我们在这里并不是要为你们解决这个问题,只是引导你们找到你们可能向我们展示的最终错误。就这样说,祝你好运!在

附言: 多一点指导 Sieve of Eratosthenes

编辑: 我指的错误是

TypeError: 'list' object cannot be interpreted as an integer

相关问题 更多 >