请编写一个函数void fun(int m,int k,int xx[]),该函数的功能是:将 大于整数m且紧靠m 的k个素数存入xx所指的数组中。 例如,若输入:17,5,则应输出:19,23,29,31,37。
时间: 2024-03-10 09:05:55 浏览: 47
求大于整数m且紧靠m的k个素数.c
好的,下面是实现该函数的代码:
```c
#include <stdio.h>
#include <stdbool.h>
bool is_prime(int n) {
if (n <= 1) {
return false;
}
for (int i = 2; i * i <= n; i++) {
if (n % i == 0) {
return false;
}
}
return true;
}
void fun(int m, int k, int xx[]) {
int num = 0;
for (int i = m + 1; num < k; i++) {
if (is_prime(i)) {
xx[num] = i;
num++;
}
}
}
int main() {
int m = 17;
int k = 5;
int xx[k];
fun(m, k, xx);
for (int i = 0; i < k; i++) {
printf("%d ", xx[i]);
}
return 0;
}
```
在这个函数中,我们首先定义了一个 `is_prime` 函数来判断一个数字是否为素数。然后在 `fun` 函数中,我们使用一个循环来依次判断 `m+1`、`m+2`、`m+3` ... 是否为素数,当我们找到了 `k` 个素数后,就将它们存入 `xx` 数组中。
最后在 `main` 函数中我们调用 `fun` 函数,并输出结果。
阅读全文