题目分析:
200明显不是素数,遍历101至199即可;
素数的平方仍是素数,所以开方后的数是素数,那么这个数也是素数,这样可以减少循环次数。
代码:
# 题目:判断101-200之间有多少个素数,并输出所有素数。
from math import sqrt
count = 0
for i in range(101, 200):
m = int(sqrt(i))
for j in range(2, m+1):
if i % j == 0:
break
else:
print(i)
count += 1
print("共有 %d 个素数" % count)
运行结果: