类型错误:'builtin_function_or_method'对象不可下标 - 查找素数 :/

0 投票
1 回答
4427 浏览
提问于 2025-04-18 04:33
import math

def findprimes(k):

    Primes=[]
    Numbers=[]
    if k>3:
        r=findprimes(math.floor(k**(1/2)))
    for a in range(k):
        Numbers.append(a+1)
    if Numbers==[1,2]:
        Primes=[2]
    if Numbers==[1,2,3]:
        Primes=[2,3]
    if len(Numbers)>3:
        for v in list(r):

            for i in range(math.floor(k/v)):
                Numbers.remove[i*v]
    if len(Numbers)>3:
        Primes=Numbers
    return Primes

我写了一个老掉牙的找质数的程序,因为我在另一个程序中用到了它。不过当我运行它的时候,出现了

TypeError: 'builtin_function_or_method' object is not subscriptable error regarding Numbers.remove[i*v].

请不要给我其他的方法,我只是想在这里解决这个问题。

1 个回答

2

Numbers.remove() 是一个方法,但你试图用 [..] 这种方式来调用它:

Numbers.remove[i*v]

把这个改成用括号:

Numbers.remove(i*v)

撰写回答