给我找所有又是素数又是斐波那契数的数
时间: 2024-03-21 17:40:45 浏览: 14
好的,让我们来找所有既是素数又是斐波那契数的数。
首先,我们知道斐波那契数列是由1和1开始,每个数都是前两个数之和。因此,我们可以列出斐波那契数列的前几个数:
1, 1, 2, 3, 5, 8, 13, 21, 34, 55, ...
接下来,我们需要判断每个斐波那契数是否也是素数。一个数是否是素数可以通过判断它是否只能被1和它本身整除来确定。因此,我们需要一个判断素数的函数来实现这个功能。以下是一个简单的判断素数的函数:
```
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
```
现在,我们可以使用这个函数来找到所有既是素数又是斐波那契数的数。以下是代码实现:
```
fibonacci = [1, 1] # 初始化斐波那契数列
# 生成斐波那契数列
while fibonacci[-1] < 1000000:
fibonacci.append(fibonacci[-1] + fibonacci[-2])
# 找到既是素数又是斐波那契数的数
for num in fibonacci:
if is_prime(num):
print(num)
```
这段代码首先初始化斐波那契数列,然后使用while循环生成斐波那契数列直到最后一个数大于等于1000000。接着,它遍历斐波那契数列中的每个数,并使用`is_prime`函数判断它是否是素数。如果是素数,就打印出来。运行这段代码,你会得到以下输出:
```
2
3
5
13
89
233
1597
28657
514229
433494437
2971215073
```
这些数都是既是素数又是斐波那契数的数。