|
发表于 2018-8-21 08:49:46
|
显示全部楼层
- #导入math模块
- import math
- #定义一个函数 传入number参数
- def is_prime(number):
- #如果参数大于1
- if number > 1:
- #在大于1的情况下等于2
- if number == 2:
- #返回 真
- return True
- #大于1的情况下 对2取余 若果等于0
- if number % 2 == 0:
- #返回 假
- return False
- #大于1的情况下 current 遍历 从3 到 number的平方根 (因为range方法取前不取后,所以加1) 最后一个2 是步长
- for current in range(3, int(math.sqrt(number) + 1), 2):
- #如果 number(参数)对current取余为0
- if number % current == 0:
- #那么返回假
- return False
- return True
- return False
- def get_primes(number):
- while True:
- # 如果 is_prime 函数为真
- if is_prime(number):
- yield number
- number += 1
- def solve():
- total = 2
- #遍历get_primes 函数的 数值
- for next_prime in get_primes(3):
- if next_prime < 2000000:
- total += next_prime
- else:
- print(total)
- return
- #如果1=1
- if __name__ == '__main__':
- #运行函数
- solve()
复制代码 |
|