![](https://csdnimg.cn/release/download_crawler_static/88559664/bg1.jpg)
本题要求计算并输出不超过 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 m,n;
int sum=0,sum2=0,x;
int i,b=0,j;
scanf("%d %d",&m,&n);
for(i=m;i>1;i--)//比如 i 的值从 1000 开始
{
for( j=2;j<i;j++)
{
x=i%j;//i 对 j 从 2 开始取余
sum=sum+x;//如果不是素数 sum 一定有值
if(x==0)//证明不是素数就可以跳出这个 for 循环
{ sum=0;
break;}
// sum=sum+x;//如果不是素数 sum 一定有值
}
if(sum!=0)//如果是素数就进入这个 if 语句
{
b++;//记已经加了几个素数