#include<iostream>
#include<cmath>
using namespace std;
int fun(int x){
int flag=1;
for(int i=2;i<=sqrt(x);i++)
if(x%i==0)
flag=0;
return flag;
}
int main(){
int n,k,count=0,sum=0;
cin>>n>>k;
while((n>=3)&&(count<k)){
n=n-1;
if(fun(n)){
if(count==0) cout<<n;
else cout<<"+"<<n;
sum+=n;
count++;
}
}
cout<<"="<<sum;
return 0;
}
供参考:
#include<stdio.h>
int isPrime(int n)
{
int i;
if(n <= 3) return n > 1;
for(i = 2;i*i <= n;i++)
if(n % i == 0) return 0;
return 1;
}
int main()
{
int n,k,i,cnt=0,sum=0;
scanf("%d%d",&n,&k);
for(i = n;i > 0;i--)
{
if(isPrime(i))
{
printf("%c%d",cnt++ == 0?'\r':' ',i);
sum += i;
if(cnt == k) break;
}
}
printf("\nsum=%d",sum);
return 0;
}