编写一个判断素数的函数,主函数中利用这个函数,打印出n与m之间的所有素数。
时间: 2023-05-31 07:20:54 浏览: 71
### 回答1:
以下是一个判断素数的函数:
```python
def is_prime(num):
if num < 2:
return False
for i in range(2, int(num ** .5) + 1):
if num % i == :
return False
return True
```
主函数中可以利用这个函数,打印出n与m之间的所有素数:
```python
n = 1
m = 100
for i in range(n, m+1):
if is_prime(i):
print(i)
```
这段代码会输出1到100之间的所有素数。
### 回答2:
素数是指只能被1和自身整除的自然数,如2、3、5、7、11、13等。判断一个数是否为素数的方法有很多,这里介绍一种基于质因数分解的方法。
首先,定义一个函数is_prime(num),用来判断一个数num是否为素数。该函数的实现方式如下:
```python
def is_prime(num):
"""
判断一个数是否为素数
"""
if num <= 1:
return False
elif num == 2:
return True
else:
# 判断是否存在小于num的因数
for i in range(2, int(num ** 0.5) + 1):
if num % i == 0:
return False
return True
```
该函数的核心思想是:如果num能够被小于它的数整除,那么它就不是素数。因此,该函数从2开始,依次判断num是否能被2到根号num之间的数整除。
接下来,在主函数中利用is_prime(num)函数,打印出n与m之间的所有素数。该过程如下:
```python
if __name__ == '__main__':
# 输入范围n和m
n = int(input("请输入范围下限[整数]:"))
m = int(input("请输入范围上限[整数]:"))
# 打印区间[n, m]内的素数
print("在[{}, {}]之间的素数有:".format(n, m))
for i in range(n, m+1):
if is_prime(i):
print(i, end=" ")
```
该代码首先从用户处获取区间[n, m],并使用for循环从n遍历到m。对于每个数i,如果is_prime(i)返回True,则打印i。
至此,完整的代码实现如下:
```python
def is_prime(num):
"""
判断一个数是否为素数
"""
if num <= 1:
return False
elif num == 2:
return True
else:
# 判断是否存在小于num的因数
for i in range(2, int(num ** 0.5) + 1):
if num % i == 0:
return False
return True
if __name__ == '__main__':
# 输入范围n和m
n = int(input("请输入范围下限[整数]:"))
m = int(input("请输入范围上限[整数]:"))
# 打印区间[n, m]内的素数
print("在[{}, {}]之间的素数有:".format(n, m))
for i in range(n, m+1):
if is_prime(i):
print(i, end=" ")
```
运行结果如下:
```
请输入范围下限[整数]:10
请输入范围上限[整数]:50
在[10, 50]之间的素数有:
11 13 17 19 23 29 31 37 41 43 47
```
### 回答3:
判断素数是一个经典的数学问题,一个数如果只能被1和它本身整除,那么这个数就是素数。根据这个特性,我们可以编写一个判断素数的函数。
函数的实现如下:
```
bool isPrime(int n)
{
if (n <= 1)
return false;
for (int i = 2; i <= sqrt(n); i++)
{
if (n % i == 0)
return false;
}
return true;
}
```
这个函数接受一个整数参数n,如果n小于等于1,则返回false;如果n大于1,那么从2到sqrt(n)循环,如果在这个范围内存在一个整数可以整除n,则返回false,否则返回true。注意,在循环中,我们只需要判断到sqrt(n)即可,因为如果n有一个因子大于sqrt(n),那么一定会有一个因子小于sqrt(n)。
接下来,我们可以编写一个主函数来利用isPrime函数,打印出n与m之间的所有素数。主函数实现如下:
```
#include <iostream>
using namespace std;
bool isPrime(int n);
int main()
{
int n, m;
cin >> n >> m;
for (int i = n; i <= m; i++)
{
if (isPrime(i))
cout << i << " ";
}
cout << endl;
return 0;
}
```
这个主函数首先从输入中读取两个整数n和m,然后从n到m循环,对于每个整数i判断是否为素数,如果是,则打印出来。循环结束后,我们再输出一个换行符。
在这个程序中,isPrime函数和主函数是分开实现的,这样做的好处在于isPrime函数可以在其他程序中重复使用,提高程序的复用性和可维护性。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)