6-3 sdut-使用函数求区域内的素数之和
6-3 sdut-使用函数求区域内的素数之和
分数 20
作者 周雪芹
单位 山东理工大学
设计函数,求指定范围内的素数之和。
函数1:prime(p), 用户传入参数p,若它为素数时返回True,否则返回False.
函数2:PrimeSum(m,n),返回区间[m, n]内所有素数的和(其 中,1<=m<n)。
函数接口定义:
prime(p),返回True表示p是素数,返回False表示p不是素数;
PrimeSum(m,n),函数返回素数之和。
在这里解释接口参数。例如:其中 N 和 D 都是用户传入的参数。 N 的值不超过int的范围; D 是[0, 9]区间内的个位数。函数须返回 N 中 D 出现的次数。
裁判测试程序样例:
/* 请在这里填写答案 */
m,n=input().split()
m=int(m)
n=int(n)
print(PrimeSum(m,n))
输入样例:
1 10
输出样例:
17
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
解题思路
本题是非常经典的题目,值得注意的是Python中由于range函数的原因,第一次起始循环的数字必须单独判断,根据素数的性质,所以数字1,2都需要单独判断。
代码实现
def prime(p):
if p == 1:
return False
elif p == 2:
return True
for i in range(2, math.ceil(math.sqrt(p)) + 1):
if p % i == 0:
return False
return True
def PrimeSum(m, n):
import math
global math
sum = 0
for i in range(m, n + 1):
if prime(i):
sum += i
return sum

浙公网安备 33010602011771号