用python求斐波那契数列的前n项,并用列表求其中的素数
时间: 2023-06-14 15:03:04 浏览: 92
83aefc1b24afa4755f3b2857b8812042
下面是代码实现:
```python
def fibonacci(n):
"""
求斐波那契数列的前n项
"""
if n <= 0:
return []
elif n == 1:
return [1]
elif n == 2:
return [1, 1]
else:
fib_list = [1, 1]
for i in range(2, n):
fib_list.append(fib_list[i-1] + fib_list[i-2])
return fib_list
def is_prime(num):
"""
判断一个数是否为素数
"""
if num < 2:
return False
else:
for i in range(2, int(num**0.5)+1):
if num % i == 0:
return False
return True
def get_prime_numbers(fib_list):
"""
从斐波那契数列中获取素数
"""
prime_list = []
for num in fib_list:
if is_prime(num):
prime_list.append(num)
return prime_list
n = int(input("请输入斐波那契数列的项数:"))
fib_list = fibonacci(n)
print("斐波那契数列前 %d 项为:" % n)
print(fib_list)
prime_list = get_prime_numbers(fib_list)
print("斐波那契数列中的素数为:")
print(prime_list)
```
代码中首先定义了一个函数 `fibonacci`,用于求斐波那契数列的前n项,返回一个列表。然后定义了一个函数 `is_prime`,用于判断一个数是否为素数。接着定义了一个函数 `get_prime_numbers`,用于从斐波那契数列中获取素数,返回一个素数列表。
最后根据输入的项数,先求出斐波那契数列,再从中获取素数并输出。
阅读全文