求助,如有空的话 能注释一下好理解 谢谢
判断101-200之间有多少个素数,并输出所有素数。(素数:除了1和它本身,不能被任何数整除)) 本帖最后由 isdkz 于 2022-4-4 18:27 编辑# 判断是否素数的函数
def isPrime(n):
# 偶数都不是素数
if n % 2 == 0:
return False
# 对奇数进行判断,能被除他自身和 1 之外的整数整除就不是素数
# 2 在前面偶数的时候判断过了,所以从 3 开始
# 如果一个数不是素数是合数,那么一定可以由两个自然数相乘得到,其中一个大于或等于它的平方根,
# 一个小于或等于它的平方根。并且成对出现,所以只用计算到该数的平方根以下看除了1有没有该数的因数,若没有,则是素数。
# 所以到 他的平方根加 1 为止,因为 range 左闭右开,所以加 1,步长为 2 是这里只对奇数判断
for i in range(3, int(n ** 0.5 + 1), 2):
if n % i == 0:
return False
return True
# 存放结果的列表
result = []
for i in range(101, 200):
# 如果 i 是素数,添加进列表
if isPrime(i):
result.append(i)
print(f'101-200之间一共有{len(result)}个素数')
print('101-200之间的所有素数为:')
for i in result:
print(i)
页:
[1]