编写函数,要求计算并输出不超过n的最大的k个素数以及它们的和。注意找到 的k个素数先要保存在数组a中。输入格式: 输入在一行中给出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 a[11]; int count=0,sum=0;/count数组中存放素数的个数,sum数组中素数求和/ void fun(int n,int k) { int i,j; /program/ /********* End **********/ }
时间: 2023-08-24 21:12:53 浏览: 102
C语言编程-编写函数fun求1!+2!+3!+ …… +n!的和,在main函数中由键盘输入n值,并输出运算结果;
5星 · 资源好评率100%
#include <stdio.h>
int isPrime(int n){ //判断是否为素数
if(n<2) return 0;
for(int i=2;i*i<=n;i++){
if(n%i==0) return 0;
}
return 1;
}
void fun(int n, int k){
int i,j;
for(i=n;i>=2&&count<k;i--){ //从大到小枚举每个数,找到k个素数为止
if(isPrime(i)){
a[count++]=i; //将素数存入数组中
}
}
for(i=0;i<count;i++){
sum+=a[i]; //统计素数的和
}
printf("%d",a[0]); //先输出第一个素数
for(i=1;i<count;i++){
printf("+%d",a[i]); //输出余下的素数
}
printf("=%d",sum); //输出素数的和
}
int main(){
int n,k;
scanf("%d%d",&n,&k); //输入n和k
fun(n,k); //调用函数
return 0;
}
阅读全文