首页 > 解决方案 > Python Prime Number for-else 范围

问题描述

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 所以它应该跳过它......

标签: pythonpython-3.xalgorithmprimes

解决方案


num为 2 时,range(2, num)为空,因此if (num % i) == 0:不执行检查,执行else块。


推荐阅读