题目:
使用函数求素数和。 PrimeSum(m,n),函数PrimeSum返回区间[m, n]内所有素数的和。题目保证用户传入的参数1<=m<n。
思路
1、先在键盘上输入区间范围。
2、判断区间范围左右边界的大小。
3、判断素数。
4、求素数和,并输出
知识点
素数(也称质数),是指除了1和该数本身,不能被任何正整数整除的正整数。判断一个正整数m是否为素数,只要判断m可否被2~根号m之中的任何一个正整数整除,如果m不能被此范围中任何一个正整数整除,m即为素数,否则m为合数。
代码
import math
m=eval(input("请输入区间【m,n】中的m:"))
n=eval(input("请输入区间【m,n】中的n:"))
def PrimeSum(m,n):
q = 2
flag = True
sum=0
if 1<=m<n:
for i in range(m,n,1):
j=int(math.sqrt(i))
while (q <= j and flag == True):
if i % q == 0:
flag = False
else:
i += 1
if flag==True:sum+=i
else:print("您输入的范围不对,请重新输入!")
return sum
print("[%d,%d]之间所有的素数之和为%d"%(m,n,PrimeSum(m,n)))
结果
请输入区间【m,n】中的m:1
请输入区间【m,n】中的n:10
[1,10]之间所有的素数之和为6