C语言设计一个函数fun(m,n),其中2<=m<n,输出[m,n]之间的素数。
时间: 2024-02-25 18:59:54 浏览: 242
好的,下面是一个使用C语言实现的素数筛选函数 `fun(m, n)`:
```c
#include <stdio.h>
#include <stdbool.h>
#include <math.h>
void fun(int m, int n) {
bool isPrime[n+1]; // 定义一个数组,用来标记是否是素数
memset(isPrime, true, sizeof(isPrime)); // 初始化为true,表示都是素数
for (int i = 2; i <= sqrt(n); i++) { // 从2开始,到n的平方根结束
if (isPrime[i]) { // 如果当前数是素数,则将其倍数标记为非素数
for (int j = i*i; j <= n; j += i) {
isPrime[j] = false;
}
}
}
for (int i = m; i <= n; i++) { // 输出[m,n]之间的素数
if (isPrime[i]) {
printf("%d ", i);
}
}
printf("\n");
}
```
使用方法为调用 `fun(m, n)` 函数,其中 `m` 和 `n` 分别为要求素数的区间左右端点,输出结果为区间内的素数。注意,需要在文件头部添加 `#include <math.h>` 来使用 `sqrt()` 函数。
阅读全文