设计一个函数 fun(n),其中 2<=m<n,输出[mn]之间的素数。在主函数中输入实参,调用函数。“(提示:可以在主函数中使用循环语句控制实参的范围)“C语言
时间: 2024-01-22 10:21:05 浏览: 20
以下是 C 语言的代码实现:
```c
#include <stdio.h>
#include <math.h>
int is_prime(int num) {
if (num < 2) {
return 0;
}
for (int i = 2; i <= sqrt(num); i++) {
if (num % i == 0) {
return 0;
}
}
return 1;
}
void fun(int n) {
for (int i = 2; i <= n; i++) {
for (int j = i * 2; j <= n * i; j++) {
if (is_prime(j)) {
printf("%d ", j);
}
}
}
}
int main() {
int n;
printf("请输入一个大于等于2的整数:");
scanf("%d", &n);
printf("%d 到 %d 之间的素数有:\n", 2 * n, n * n);
fun(n);
return 0;
}
```
首先,我们定义了一个判断素数的函数 `is_prime`,用于判断一个数是否为素数。然后,我们定义了函数 `fun`,其中 `n` 是传入的参数,表示上限值。
函数 `fun` 中,我们使用了两个循环嵌套,分别循环范围为 `[2, n]` 和 `[2*n, n*n]`,并将 `[2*n, n*n]` 中的每个数都传入 `is_prime` 函数进行判断,如果是素数就输出。
在主函数中,我们首先输入实参 `n`,然后调用函数 `fun`,输出 `[2*n, n*n]` 之间的素数。
注意,由于题目中要求输出 `[m*n]` 之间的素数,我们在函数 `fun` 中循环的范围为 `[2, n]`,这样可以保证 `[m*n]` 范围内的素数都被输出了。