【问题标题】:Finding prime numbers within a range python [duplicate]在python范围内查找素数[重复]
【发布时间】:2017-04-20 15:35:59
【问题描述】:

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

【问题讨论】:

  • 我认为如果你不逐字粘贴你的作业,你会得到更少的反对票。在那之后,OP 实际上确实提供了自己的代码和一些关于它卡在哪里的描述。
  • (但是,“我收到错误”不是可接受的错误描述)

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


【解决方案1】:

首先,您可能会收到一个错误,因为 range 需要一个整数,而不是生成器,请尝试使用 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

【讨论】:

    【解决方案2】:

    我不想给你作业的答案,但我确实想提供帮助,所以我会指导你一点。

    我发现您提供的内容存在 2 个问题。首先,您为您的范围使用了不正确的变量。你想要一个数字,而不是一个列表。

    其次,你不能比较“P”是否能整除 2。你只能检查一个数字是否是。

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

    编辑:为了澄清,还有更多问题,但这两个会出错。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-03-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-09
      • 2020-10-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多