用python写一个代码实现求素数
时间: 2023-06-08 15:07:27 浏览: 144
好的,以下是一个用Python实现求素数的代码:
```
def prime_number(num):
"""
判断一个数是否为素数
"""
if num < 2: # 2以下的数字都不是素数
return False
for i in range(2, int(num ** 0.5) + 1): # 优化:只需要判断到 num 的平方根即可
if num % i == 0:
return False
return True
def get_prime_numbers(num):
"""
获取小于等于num的所有素数
"""
res = []
for i in range(2, num + 1):
if prime_number(i):
res.append(i)
return res
# 测试:
print(get_prime_numbers(20)) # [2, 3, 5, 7, 11, 13, 17, 19]
```
以上代码包含两个函数,第一个是用于判断一个数是否为素数的函数 prime_number,第二个是用于获取小于等于num的所有素数的函数 get_prime_numbers。可以调用 get_prime_numbers 函数来测试获取指定范围内的素数。
相关问题
用python写一个输出素数的代码
当然,这个问题很简单,可以使用以下代码实现:
``` python
def is_prime(num):
if num < 2:
return False
for i in range(2, int(num**0.5)+1):
if num % i == 0:
return False
return True
def prime_numbers(n):
primes = []
for num in range(2, n):
if is_prime(num):
primes.append(num)
return primes
```
使用这个函数,可以找到所有小于n的素数,例如:
``` python
>>> prime_numbers(20)
[2, 3, 5, 7, 11, 13, 17, 19]
```
希望这能帮到你!
用python写一个求出所有二位绝对素数
绝对素数是指两个素数之差为2的素数。因此,我们可以先写一个判断素数的函数,然后再遍历所有二位素数,判断它们与相邻的素数之差是否为2。
以下是代码实现:
```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
primes = [n for n in range(10, 100) if is_prime(n)]
twin_primes = [str(primes[i]) + ',' + str(primes[i+1]) for i in range(len(primes)-1) if primes[i+1]-primes[i] == 2]
print('所有二位绝对素数:')
for twin_prime in twin_primes:
print(twin_prime)
```
输出结果为:
```
所有二位绝对素数:
11,13
17,19
29,31
41,43
59,61
71,73
```
以上代码先用列表推导式生成10到99之间的素数,然后再用列表推导式生成相邻素数之差为2的二位素数对,并输出结果。
阅读全文