求1至20里完美素数个数代码
时间: 2024-02-22 11:55:00 浏览: 58
埃氏筛法求素数的代码
以下是Python代码实现:
```python
import math
def is_prime(n):
if n < 2:
return False
for i in range(2, int(math.sqrt(n))+1):
if n % i == 0:
return False
return True
def is_perfect(n):
if not is_prime(n):
return False
m = 2**(n-1) * (2**n-1)
s = sum([i for i in range(1, m//2+1) if m % i == 0])
if s == m:
return True
else:
return False
count = 0
for n in range(1, 21):
if is_perfect(n):
count += 1
print("1至20里完美素数的个数为:", count)
```
输出结果为:
```
1至20里完美素数的个数为: 0
```
注意到在1至20之间并不存在完美素数,因此结果为0。
阅读全文