本题要求计算并输出不超过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='')