python - 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
添加更多细节以解决过去的错误:
看起来您的帖子主要是代码;请添加更多细节。
解决方案
您正在打印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)
推荐阅读
- php - 如何从第一个表中获取第三个表和第二个表的数据?
- python - 在 pandas ewm 函数上矢量化 for 循环
- c++ - 将负整数左移零作为未定义行为是否有意义?
- c# - GTK 应用程序不在 Windows 中运行
- python - 您如何使用 if 语句仅排除整数并给出无效的条目消息?
- redux - 用flutter redux更新列表项的问题?
- regex - 此 {{mike}} {{michael}} {{jordan}} 的正则表达式
- wpf - 为什么我不能通过 GridSplitter 调整最后一列的宽度?
- c# - 在 asp.net 核心中替代 HttpConfigurationExtensions.BindParameter
- python - Python_d.exe 和 venv -- 找不到“python_d.exe”