请编写一个函数void fun(int m,int k,int xx[]),该函数的功能是:将 大于整数m且紧靠m 的k个素数存入xx所指的数组中。 例如,若输入:17,5,则应输出:19,23,29,31,37。
时间: 2024-03-10 13:05:55 浏览: 28
好的,以下是实现该函数的代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int is_prime(int n) {
if (n <= 1) {
return 0;
}
int i;
for (i = 2; i <= sqrt(n); i++) {
if (n % i == 0) {
return 0;
}
}
return 1;
}
void fun(int m, int k, int xx[]) {
int i = 0;
int n = m + 1;
while (i < k) {
if (is_prime(n)) {
xx[i++] = n;
}
n++;
}
}
int main() {
int m = 17;
int k = 5;
int xx[k];
fun(m, k, xx);
int i;
for (i = 0; i < k; i++) {
printf("%d ", xx[i]);
}
printf("\n");
return 0;
}
```
函数 `is_prime` 用于判断一个数是否为素数,函数 `fun` 则是根据输入的整数m和k,不断从m+1开始往后查找素数,将找到的素数存入xx数组中,直到找到k个为止。