设计一个函数fun(m,n),其中2<=m<n,输出[m,n]之间的素数。
时间: 2024-02-25 17:59:54 浏览: 72
输入一个整数,判断2~n之间的素数并输出
4星 · 用户满意度95%
好的,这是一个素数筛选的问题,可以使用埃氏筛法来解决。具体实现如下:
```
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]) {
cout << i << " ";
}
}
}
```
使用方法为调用 `fun(m, n)` 函数,其中 `m` 和 `n` 分别为要求素数的区间左右端点,输出结果为区间内的素数。
阅读全文