|
发表于 2022-4-4 17:11:15
|
显示全部楼层
本楼为最佳答案
本帖最后由 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)
复制代码 |
|