如何扩展用作循环范围的数组

问题描述 投票:0回答:1

我正在构建一个程序来查找素数,我通过循环遍历 100 以下的数字来实现这一点,并且我使用两个 for 循环来遍历数字并查找它们是否是素数。我的问题是,第二个循环范围等于发现的素数数组,但我不知道如何添加到该数组,因为当我将新数字附加到数组时,Python 会创建一个克隆变量,这意味着它只会循环遍历第二次循环一次。

def Primeadder():
    primes = [1]
    for i in range(100):
        for j in range(len(primes)):

            if j != 0:
               continue
            
            print(f"i = {i} and j = {j}")
            print(len(primes))

            if j != 0 and i%primes[j] == 0 and i not in primes:
                primes.append(i)
    print(primes)

Primeadder()

我尝试使用 numpy 数组,但不知道如何在 Visual Studio 上安装该库。我对如何解决这个问题没有其他想法。

python arrays dynamic-arrays
1个回答
0
投票

您的代码中有逻辑错误

这是正确的代码:

def Primeadder():
    primes = []
    for i in range(2, 100): 
        is_prime = True  

        for prime in primes:
            if i % prime == 0:
                is_prime = False
                break  

        if is_prime:
            primes.append(i)

    print(primes)

此代码从 2 开始,假设每个数字都是素数,检查是否能被已知素数整除,并将不可整除的数字添加到素数列表中。这样,它可以有效地识别 100 以下的素数。

© www.soinside.com 2019 - 2024. All rights reserved.