编写函数fun输出m到n之间的素数。m小于n且m和n均为自然数。
时间: 2024-02-22 17:55:56 浏览: 19
以下是一个Python实现的函数fun,可以输出m到n之间的素数:
```python
def fun(m, n):
primes = []
for i in range(m, n+1):
if i > 1:
for j in range(2, int(i**(0.5))+1):
if i % j == 0:
break
else:
primes.append(i)
return primes
```
使用方法:
```python
m = 1
n = 100
result = fun(m, n)
print(result)
```
输出结果:
```
[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]
```
注意,这个函数只能用于求解小范围内的素数。如果需要求解更大范围内的素数,需要使用更高效的算法。
相关问题
使用c++编写函数fun输出m到n之间的素数。m小于n且m和n均为自然数。
以下是一个C++实现的函数fun,可以输出m到n之间的素数:
```cpp
#include <iostream>
#include <vector>
using namespace std;
vector<int> fun(int m, int n) {
vector<int> primes;
for (int i = m; i <= n; i++) {
bool is_prime = true;
if (i > 1) {
for (int j = 2; j * j <= i; j++) {
if (i % j == 0) {
is_prime = false;
break;
}
}
if (is_prime) {
primes.push_back(i);
}
}
}
return primes;
}
int main() {
int m = 1;
int n = 100;
vector<int> result = fun(m, n);
for (int i = 0; i < result.size(); i++) {
cout << result[i] << " ";
}
cout << endl;
return 0;
}
```
使用方法:
将上面的代码保存为一个.cpp文件,使用C++编译器编译并运行即可。
输出结果:
```
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97
```
与Python实现相比,这个C++实现使用了vector容器来存储结果,并且在判断素数时使用了更加高效的算法。
C语言编写函数fun输出m到n之间的所有素数
以下是C语言实现的代码:
```c
#include <stdio.h>
#include <stdbool.h>
bool is_prime(int num) {
if (num < 2) {
return false;
}
for (int i = 2; i * i <= num; i++) {
if (num % i == 0) {
return false;
}
}
return true;
}
void fun(int m, int n) {
for (int i = m; i <= n; i++) {
if (is_prime(i)) {
printf("%d ", i);
}
}
printf("\n");
}
int main() {
int m, n;
printf("请输入m和n的值:");
scanf("%d %d", &m, &n);
printf("m到n之间的所有素数为:");
fun(m, n);
return 0;
}
```
函数`is_prime`用于判断一个数是否为素数,函数`fun`则用于输出m到n之间的所有素数。在`main`函数中,先读入m和n的值,然后调用`fun`函数输出所有素数。