PTA:求n以内最大的k个素数以及它们的和(c++)

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

#include
using namespace std;
int isprime(int k){
    int i;
    for(i=2;i<k;i++){
        if(k%i==0){     //判断素数的函数
            return 0;
        }
    }
    return 1;
}
int main(){
    int i,j,k,sum=0,count=0;   //count记录数字个数,sum记算总数
    cin>>j>>k;
    for(i=j;i>1;i--){
        if(isprime(i)&&count==0){
            cout<<i;
            sum+=i;
            count++;
        }else if(isprime(i)&&count!=0){
            cout<<"+"<<i;
            sum+=i;
            count++;
        }
        if(count==k){
            break;
        }
    }
    cout<<"="<<sum<<endl;
    return 0;
}

你可能感兴趣的:(PTA:求n以内最大的k个素数以及它们的和(c++))