【问题标题】:Why is this code outputting multiple of the same prime numbers?为什么这段代码会输出多个相同的素数?
【发布时间】:2023-02-17 19:34:54
【问题描述】:

大家好:)(我对此很陌生)

我正在玩一段简单的代码,它应该打印给定范围内的素数。

nums = range(1, 11)

for number in nums:
    if number > 1:
        for i in range(2, number):
            if(number % i) == 0:
                break
            else:
                print(number)

我得到的输出如下...

5
5
5
7
7
7
7
7
9

我不明白为什么它会多次打印素数。

我希望它能打印出数字……

3,5,7,9

但似乎无法理解为什么它打印 5 3 次和 7 5 次等。

【问题讨论】:

  • 如果您将打印更改为:print(number, i),您可能会开始明白发生了什么。
  • 我认为 9 不是质数,因为它有 3 个因数 (1, 3, 9)
  • 啊你是对的。 9不应该在那里

标签: python numbers


【解决方案1】:

您只需要将 print(number) 语句移到 else 块之外,

nums = range(1, 11)

for number in nums:
    if number > 1:
        for i in range(2, number):
            if (number % i) == 0:
                break
        else:
            print(number)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多