6-1 使用函数求素数和 (20 分)

使用函数求素数和

prime(p), 其中函数prime当用户传入参数p为素数时返回True,否则返回False.
PrimeSum(m,n),函数PrimeSum返回区间[m, n]内所有素数的和。题目保证用户传入的参数1<=m

函数接口定义:

在这里描述函数接口:
prime(p),返回True表示p是素数,返回False表示p不是素数
PrimeSum(m,n),函数返回素数和

裁判测试程序样例:


/* 请在这里填写答案 */m,n=input().split()
m=int(m)
n=int(n)
print(PrimeSum(m,n))

输入样例:

在这里给出一组输入。例如:

1 10

输出样例:

在这里给出相应的输出。例如:


       由题意可知:函数prime用来判断一个数是不是素数,而函数PrimeSum计算区间[m, n]内所有素数的和。

       素数:质数又称素数。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数;

       函数prime:判断[m, n](1<=m遍历到sqrt(n)即可(可以减少循环次数),因为若sqrt(n)左侧找不到约数,那么右侧也一定找不到约数。

例如:一个数16,16除了1和它本身外的因数为(2*8,4*4),就可知分解时得到的两个数一定是一个小于等于sqrt(16)的,所以只需要遍历到sqrt(n)即可。

import math     #调用数学函数库
def prime(p):if p==1:         #1不是素数return Falseif p==2:        #2是素数return Truea = Trueif p>2:for i in range(2,int(math.sqrt(p)+1)):#判断是否是素数(遍历到根号后的值,减少循环次数)if p%i==0:a = False    #能整除i,不是素数,返回Falsebreakreturn a        #在函数中return执行的做多只有 1 个,且一旦执行,函数运行会立即结束def PrimeSum(m,n):sum = 0for i in range(m,n+1):if prime(i):    #调用另一个函数来判断这个数是不是素数sum +=ireturn sum


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部