首页 > 解决方案 > Python 主要列表

问题描述

integer = int(input("Enter an integer: "))
if integer >= 2:
    print(2)
for i in range(2, integer + 1): # range 2,3,...,integer (excludes 1)
    for j in range(2, i): # we are going to try dividing by these
        if i % j == 0: # not prime
            break
        else: # is prime
            print(i)

输入:

7

输出:

2
3
5
5
5
7
7
7
7
7

我想要的输出:

2
3
5
7

添加更多细节以解决过去的错误:

看起来您的帖子主要是代码;请添加更多细节。

标签: python

解决方案


您正在打印i每个j不除以它的值,直到您得到一个可以除以它的值并执行break.

i只有在不跳出循环时才应该打印。将else:语句放在for循环上,而不是if. 该else:语句在循环正常结束而不是中断时执行。

for i in range(2, integer + 1): # range 2,3,...,integer (excludes 1)
    for j in range(2, i): # we are going to try dividing by these
        if i % j == 0: # not prime
            break
    else: # is prime
        print(i)

推荐阅读