C语言编程:求n以内的k个最大素数以及他们的和,咋写?

要求:
1)n和k由键盘输入;输入错误时提示并退出程序。
2)先在屏幕上输出各个素数,用' '隔开,再独行输出它们的总和。
3)当实际素数不足k个时,另加一行在()出只有XX字样。

代言文本:

#include "stdio.h"

int prime(int n){//素数判断

int i;

if(n>2 && !(n&1) || n<2)

return 0;

for(i=3;i*i<=n;i+=2)

if(!(n%i))

return 0;

return 1;

}

int main(int argc,char *argv[]){

int n,k,x,s,t;

printf("Enter n & k(int 0<n,k)...\n");

if(scanf("%d%d",&n,&k)==2 && n>0 && k>0){

for(s=t=x=0,n-=!(n&1);n>1 && x<k;n>3 ? n-=2 : n--)

if(prime(n)){

printf(++t%7 ? "%d\t" : "%d\n",n);

s+=n,x++;

}

printf("\nThe SUM is %d\n",s);

if(x<k)//不足k个素数时输出"仅有xx个"

printf("(There are only %d)\n",x);

}

else

printf("Input error, exit...\n");

return 0;

}

供参考……

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-05-30

输出素数

结果是

个数大于 k

个数不足 k 个