用python寻找素数
时间: 2023-05-28 19:04:31 浏览: 103
以下是寻找素数的Python代码:
```python
def is_prime(n):
"""
判断一个数是否为素数
"""
if n < 2:
return False
for i in range(2, int(n ** 0.5) + 1):
if n % i == 0:
return False
return True
def find_primes(n):
"""
找出小于等于n的所有素数
"""
primes = []
for i in range(2, n + 1):
if is_prime(i):
primes.append(i)
return primes
# 示例
print(find_primes(100)) # 输出小于等于100的所有素数
```
运行结果:
```
[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 寻找回文素数
以下是用 Python 寻找回文素数的代码:
```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
def is_palindrome(n):
return str(n) == str(n)[::-1]
def find_palindrome_primes(n):
primes = []
for i in range(2, n):
if is_prime(i) and is_palindrome(i):
primes.append(i)
return primes
print(find_palindrome_primes(1000))
```
这个程序会输出 2 到 1000 之间的所有回文素数。
用python寻找所有素数
在Python中,寻找所有的素数可以使用经典的“埃拉托斯特尼筛法”(Sieve of Eratosthenes)或更高效的方法如“米勒-拉宾素数测试”。这里是一个基于埃拉托斯特尼筛法的基本实现:
```python
def find_primes(n):
primes = [True] * (n+1)
p = 2
while p**2 <= n:
if primes[p]:
# 将p的倍数标记为非素数
for i in range(p**2, n+1, p):
primes[i] = False
p += 1
# 输出所有素数
prime_numbers = [p for p in range(2, n) if primes[p]]
return prime_numbers
# 示例
n = 50
all_primes = find_primes(n)
print(f"所有小于或等于 {n} 的素数是:{all_primes}")
阅读全文