习题解析之:素数求和
【问题描述】
输入一个正整数n,统计从[0,n]之间的最大的10个素数之和。本题保证测试用例至少有10个满足条件的素数。
本题要求使用自定义函数完成,代码框架参考如下:
def isprime(n): #判断素数函数
......
def f(n): #找小于等于n的素数并求和
......
......
p=int(input())
print(f(p))
示例 1
输入:
31
输出:
3+5+7+11+13+17+19+23+29+31=158
【编程思路】
先编写一个函数 isprime(n) 用于判断整数 n 是否为素数,若n 是素数,返回 True;否则,返回 False。
要统计从[0,n]之间的最大的10个素数之和。可以先创建一个空列表 ls,用于保存最大的 10 个素数。
用循环 for i in range(n,1,-1): 寻找 10 个最大的素数,每找到一个素数将其加入到列表 ls,若列表 ls 中元素的个数为 10(len(ls) == 10),则表示已找到 10 个素数,退出循环。并按输出样例的格式构造出一个字符串作为函数返回值。输出为一个等式,等式的左边是 10 个最大素数的相加式,用 '+'.join(map(str,ls)) 来构造,即将列表 ls 中保存的 10 个最大素数转换为字符串后用加号“+”连接起来;等式的右边是 10个素数的和,即 sum(ls)。
编写的源程序如下:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/977234.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!