PTA求n以内最大的k个素数以及它们的和 python

本题要求计算并输出不超过n的最大的k个素数以及它们的和。

输入格式:
输入在一行中给出n(10≤n≤10000)和k(1≤k≤10)的值。

输出格式:
在一行中按下列格式输出:

素数1+素数2+…+素数k=总和值
其中素数按递减顺序输出。若n以内不够k个素数,则按实际个数输出。

输入样例1:

1000 10

输出样例1:

997+991+983+977+971+967+953+947+941+937=9664

输入样例2:

12 6

输出样例2:

11+7+5+3+2=28
s=input()
s1=list(s.split())
n=int(s1[0])
k=int(s1[1])
#n,k=map(int,input().split()) 这行代码等价于上面四行代码,就输入两个数
a=[]  #将素数放入该列表
i=n 
x=0 #记录素数个数
j=0  #就声明一下变量
while x<k and i>=2: #个数为k个素数或个数不足k个时到2停止

    for j in range(2,i): #j从2开始
        if(i%j==0): break #若可以整除,则不是素数
    if j==i-1 or i==2: #2也是素数
        a.append(i) #将素数放入列表
        x+=1 #记录当前寻找到的素数个数
    i-=1
#后面就是输出了
for i in range(x):
    print(a[i],end='')
    if i!=x-1:
        print("+",end='')

print("=",end='')
print(sum(a),end='')

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值