赞
踩
第一种方法:循环法
sum = 0
for i in range(1,101): """第一个循环,遍历1-100的数,准备找素数"""
for n in range(2,i): """第二个循环,按照素数的定义,找出从2开始的所有比它小的数"""
if i%n ==0:
break """相除求余,如果有可以被除尽的n,则第一个循环取出的 i 不是素数,直接中断退出,不需要继续算完了"""
else: """如果没有,则 i 是素数"""
sum += i """用sum记录下找出的 i 的和"""
print('100以内的素数和是:{}'.format(sum))
第二种方法:定义函数法
def fun(n): """定义一个函数,这个函数的作用就是判断输入的 n 是不是素数。它的返回值是 False 和True。"""
for i in range(2,n):
if n%i == 0:
return False
else:
return True
sum = 0
for i in range(2,101):
if fun(i): """如果为真,即如果fun(i)返回的值为True,i 为素数,则进行下面的累加"""
sum += i
print(sum)
当然,找质数的过程并不需要遍历每一个比它小的数,只需要遍历从2开始到这个数的平方即可。可以引入math函数中的sqrt (),从而降低代码运行量。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。