输入一个正整数,判断是否为质数
时间: 2023-06-08 20:09:11 浏览: 362
好的,我可以回答你的问题。判断一个正整数是否为质数的方法一般有两种,分别是试除法和埃氏筛法。
试除法的思路是逐一判断该数是否能被比它小的正整数整除,如果能则不是质数,否则是质数。代码实现如下:
```python
def is_prime(n):
if n <= 1:
return False
for i in range(2, int(n ** 0.5) + 1):
if n % i == 0:
return False
return True
```
其中,`int(n ** 0.5)` 表示 n 的平方根向下取整。
另一种方法是埃氏筛法,它是从小到大筛选出所有的质数,当需要判断一个数是否为质数时,直接看它是否在已筛选出的质数中即可。代码实现如下:
```python
def is_prime(n):
if n <= 1:
return False
sieve = [True] * (n + 1)
sieve[0] = sieve[1] = False
for i in range(2, int(n ** 0.5) + 1):
if sieve[i]:
for j in range(i * i, n + 1, i):
sieve[j] = False
return sieve[n]
```
在这里,我们使用了一个布尔数组 `sieve` 来记录每个数是否为质数,首先将所有数标记为质数,然后从 2 开始遍历,将它的倍数标记为非质数,以此类推,直到遍历到该数的平方根。
以上便是两种常见的判断质数的方法,希望能对你有所帮助。
阅读全文
相关推荐
![](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)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.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)