#include<bits/stdc++.h> using namespace std; bool isprime(int n){ if(n<=1)return false; int sqr=sqrt(n); for(int i=2;i<=sqr;i++)if(n%i==0)return false; return true; } int main(){ int n,k,ans[15],sum=0;//ans数组存放素数 cin>>n>>k; for(int i=n;i>=2&&k;i--){ if(isprime(i)){ k--;//找到一个素数,k-- ans[k]=i;//放入数组 sum+=i;//累加和 } } for(int i=k;i>=1;i--)ans[i]=0;//k个素数找到了,多余的清零 for(int i=k;i>=1;i--){ cout<<ans[i]; if(i!=1)cout<<"+";//注意格式 } cout<<"="<<sum; return 0;

求n以内最大的k个素数以及它们的和分数 20作者 林颖贤单位 集美大学本题要求计算并输出不超过n的最大的k个素数以及它们的和。输入格式输入在一行中给出n10≤n≤10000和k1≤k≤10的值。输出格式在一行中按下列格式输出素数1+素数2+…+素数k=总和值其中素数按递减顺序输出。若n以内不够k个素数则按实际个数输出。输入样例11000 10输出样例1997+991+983+977+971+967

原文地址: https://www.cveoy.top/t/topic/d9Xs 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录