[英]prime number function python from list
下面是我的代碼,用於從 Fibonacci 列表中創建素數列表,但素數列表不起作用。
我錯過了什么? 我需要從斐波那契列表中創建一個素數列表。
a1 = []
a2 = []
count = 0
n = int(input())
def fib(n):
a = 1
b = 1
a1.append(a)
a1.append(b)
for i in range(n):
c = a + b
a = b
b = c
if len(a1) <= n - 1:
a1.append(c)
print(a1)
print(len(a1))
fib(n)
def pr(a1):
count = 0
for i in a1:
for j in range(2, i):
if i % j == 0:
count += 1
if count > 0:
a2.append()
print(a2)
為什么素數列表不起作用?
我對您的代碼做了一些修復:
def fib(n):
a = 1
b = 2
a1.append(a)
a1.append(b)
for i in range(n):
c=a+b
a=b
b=c
if len(a1)<=n-1:
a1.append(c)
print(a1)
print(len(a1))
def pr(a1):
for i in a1:
isPrime = True
for j in range(2,i):
if i % j == 0:
isPrime = False
break
if isPrime:
a2.append(i)
print(a2)
a1=[]
a2=[]
n=int(input())
fib(n)
pr(a1)
pr()
。 看起來有點,就像你不太確定函數是如何工作的,也許讀一下它們(或者只是問問:))a
和b
,為什么不用正確的斐波那契數列 (1, 2,..) 開始它們以避免重復?pr()
中,您使用了不帶參數的append()
方法。 你需要告訴程序你想要什么 append 到列表中。 據我所知,這是您遇到異常的地方。希望這個對你有幫助。
試試下面的代碼。 編輯您的代碼,a2 將在斐波那契列表中給出質數。
a1 = []
a2 = []
def recur_fibo(n):
if n <= 1:
return n
else:
return(recur_fibo(n-1) + recur_fibo(n-2))
n = 10
if n > 0:
for i in range(n):
a1.append(recur_fibo(i))
for num in a1:
if num > 1:
for i in range(2,num):
if (num % i) == 0:
break
else:
a2.append(num)
print(a2)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.