您的位置:首页 > 其它

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

2016-07-30 17:59 483 查看
5-36 求n以内最大的k个素数以及它们的和   (20分)

本题要求计算并输出不超过n的最大的k个素数以及它们的和。

输入格式:

输入在一行中给出n(10\le≤n\le≤10000)和k(1\le≤k\le≤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>
#include <stdlib.h>
int main()
{
int number[10001];
int i,j;
for(i=0;i<=10000;i++)
number[i]=i;
number[0]=number[1]=0;
for(i=2;i<=10000;i++)
{
if(number[i])
{
for(j=2*i;j<=10000;j+=i)
{
number[j]=0;
}
}
}
double result=0;
int n,k;
int count=0;
scanf("%d%d",&n,&k);
i=n;
int flag=0;
while(count<k&&i!=1)
{
if(number[i]!=0)
{
if(flag)
printf("+");
printf("%d",i);
flag=1;
result+=i;
count++;

}
i--;
}
printf("=%.0f\n",result);

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