Python 质数 for-else 范围

标签 python python-3.x algorithm primes

lower = int(input("from:"))
upper = int(input("to:"))
for num in range(lower,upper + 1):
   if num > 1:
       for i in range(2,num):
           if (num % i) == 0:
               break
       else:
           print(num)

为什么这段代码将“2”打印为素数? (它是但它不应该打印它)

2%2==0 所以它应该跳过它...

最佳答案

num 为 2 时,range(2, num) 为空,所以 if (num % i) == 0:不执行检查,执行 else block 。

关于Python 质数 for-else 范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53400108/

相关文章:

python - 楼层划分//vs int() 四舍五入

python - 使用 __init__ 函数来初始化 Python 中的对象

python - 使用 python : KeyError: 'O' 解析文件时出现逻辑错误

java - Java中如何直接或间接找到另一个表达式变量中使用的所有变量

algorithm - 基于相邻点在随机数据中寻找中心

python - 在 pyparsing 中评估 bool

python - 客户端在不阻止客户端/服务器通信的情况下启动单独进程的最佳方式

python - 在 Python 3 中可以结合参数描述和类型提示吗?

Python - 迭代月份日期并打印自定义输出

python - 如何修改 Levenshtein 算法,知道它是否插入、删除或替换了一个字符?