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

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

  • 输入格式:输入在一行中给出n(10≤n≤10000)和k(1≤k≤10)的值。
  • 输出格式:素数1+素数2+…+素数k=总和值
  • 输入样例1:1000 10
  • 输出样例1:997+991+983+977+971+967+953+947+941+937=9664
  • 输入样例2:11+7+5+3+2=28
#include <stdio.h>
main()
{
   int num[2000];//这样是过不了pta的 得把2000换成10001
   int i,a,b,c=0,sum=0,f=0,j;
   scanf("%d%d",&a,&b);
   for(i=2;i<a;i++)
   {
    for(j=2;j<a;j++)
     if(i%j==0)
         break; 
     if(i==j)
         num[c++]=i; 
   }  
   if(c>b)
    for(int d=c-1;d>c-b-1;d--)
     sum+=num[d];
    else
	 for(int g=c-1;g>=0;g--)
    sum+=num[g]; 
    if(c>b)
    for(int e=c-1;e>c-b-1;e--)
     {
     	if(f==0)
      	    printf("%d",num[e]);
     	else
      	    printf("+%d",num[e]);
     	 f=1; 
     }
    else
    for(int h=c-1;h>=0;h--)
     {
   	   if(f==0)
   	    printf("%d",num[h]);
   	   else
   	    printf("+%d",num[h]);
   	   f=1;
   	  }
     printf("=%d",sum);
   
}

2020/1/4 22/59

发布了21 篇原创文章 · 获赞 5 · 访问量 739

猜你喜欢

转载自blog.csdn.net/weixin_45862170/article/details/103838759