python - 列表中的素数函数python
问题描述
下面是我从斐波那契列表中制作素数列表的代码,但素数列表不起作用。
我错过了什么?我需要从斐波那契列表中制作一个素数列表。
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()
没有参数的方法。您需要告诉程序您要附加到列表中的内容。据我所知,你有一个例外。
希望这个对你有帮助。
推荐阅读
- excel - 当 Vlookup 导致值发生变化时自动运行宏
- c++ - 试图找到原子加载/存储操作的最大大小
- asp.net-mvc - 发布后特定视图不更新内容
- ruby-on-rails - Rails ActiveModel 使用单类设计 belongs_to 和 has_many
- python - 类变量引用本身?
- javascript - React Hooks 可以有方法吗?
- python - 将一维 Numpy 数组作为行添加到 DataFrame
- java - 逐个扩展类扩展另一个类是一个好习惯吗?
- asp.net-mvc - 找不到asp.net核心页面
- swift4 - 没有让 navigationController?.pushViewController 工作但存在吗?