刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!

简答题

38.编写Python程序,要求输出区间[m,n]内所有素数的和,实现上述功能的 Python 程序如下,请在划线处填入合适的代码。
def isPrime(num): #判断素数
​ num=int(num)
​ for i in range(2,num):
​ if ① :
​ return False
​ if num!=1:
​ return True
def PrimeSum(a,b):
​ sum=0
​ for i in range(a,b+1):
​ if isPrime(i):
​ ②
​ return sum
m=int(input("m:"))
n=int(input("n:"))
print( ③ )

使用微信搜索喵呜刷题,轻松应对考试!

答案:

```pythondef isPrime(num): #判断素数num = int(num)for i in range(2, num):if i * i > num:breakif num % i == 0:return Falseif num != 1:return Truedef PrimeSum(a, b):sum = 0for i in range(a, b+1):if isPrime(i):sum += ireturn summ = int(input("m:"))n = int(input("n:"))print(PrimeSum(m, n))```

解析:

【喵呜刷题小喵解析】:

1. 对于`isPrime`函数,我们不需要检查到`num`,只需要检查到`sqrt(num)`。因为如果`num`不是素数,那么它必定有一个因子小于或等于它的平方根。因此,我们可以优化`isPrime`函数,在循环中只检查到`sqrt(num)`。
2. 对于`PrimeSum`函数,如果`i`是素数,我们需要将其加入到`sum`中。因此,在`if isPrime(i):`语句下,我们需要添加`sum += i`。
3. 对于主程序部分,我们直接调用`PrimeSum(m, n)`并打印结果。

所以,划线处应填写的代码为:

①:`if num % i == 0:`

②:`sum += i`

③:`PrimeSum(m, n)`
创作类型:
原创

本文链接:38.编写Python程序,要求输出区间[m,n]内所有素数的和,实现上述功能的 Python 程序

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。

让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!

分享考题
share