【问题描述】

输入一个正整数n,统计从[0,n]之间的最大的10个素数之和。本题保证测试用例至少有10个满足条件的素数。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬

例如:输入31 ,应求得3,5,7,11,13,17,19,23,29,31之和。

本题要求使用自定义函数完成,代码框架参考如下:

def isprime(n):  #判断素数函数

    ......

def f(n):        #找小于n的素数并求和

    ......

    ......

p=int(input())

print(f(p))

【输入形式】
【输出形式】
【样例输入】

31
【样例输出】

158
【样例说明】
【评分标准】

"""
@author: 16379
"""
def isprime(n):  #判断素数函数
    a=0
    m=int(pow(n,0.5))+1
    for i in range(2,m+1):
        if n%i == 0:
            break            
        elif n%i != 0 and i==m: 
            a=1
    return (a)                         
def f(n):        #找小于n的素数并求和
    ls=[]
    for i in range (2,n+1):
        a=isprime(i)
        if a==0:
            continue
        elif a == 1:
            ls.append(i)
    l = ls[-10:]
#    print(l)
#    print(ls)
    sum = 0
    for j in l:
        sum += j
    return (sum)
p=int(input())
print(f(p))     

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐