您的位置:首页 > 其它

7-51 求n以内最大的k个素数以及它们的和

2018-01-29 19:02 302 查看


7-51 求n以内最大的k个素数以及它们的和(20 分)

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

int main()
{
int n,k;
int number[10],a=0;
int sum=0;
int count=0;
scanf("%d %d",&n,&k);
int x=n;
for(int i=1;i<=x;i++){
int ret=1;//判断素数
for(int j=2;j<n;j++){
if(n%j==0){
ret=0;
break;
}
}
if(ret==1){
sum+=n;
number[a]=n;
a++;//a为实际个数
if(a==k) break;
}
n--;
if(n<2)	break;
}
for(int b=0;b<a;b++){
printf("%d",number[b]);
if(a==1)
printf("=%d",sum);
if(a>1){
if(count==a-1){
printf("=%d",sum);
break;
}
printf("+");
count++;
}
}

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐