#include <cstdio>
#include<math.h>
const int max=10000;
int a[max];
int isprime(int n)//判断素数
{
int flag=1;
if(n<2){
flag=0;
}
for(int i=2;i<=sqrt(n);i++)
{
if(n%i==0)
{
flag=0;
break;
}
}
return flag;
}
int main(){
int n,k;
int sum=0,count=0;
scanf("%d%d",&n,&k);
for(int i=n;i>0;i--)
{
if(isprime(i))
{
count++;
sum+=i;
printf("%d",i);
if(count==k||i==2)//统计个数,若不够k个数则正常输出
{
printf("=%d",sum);
break;
}
else{
printf("+");
}
}
}
return 0;
}
注意:
1、统计k的个数是个难点,当count==k或者当达到最小的素数时输出,由于2是最小的素数。所以当i==2时输出。