我正在构建一个程序来查找素数,我通过循环遍历 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 上安装该库。我对如何解决这个问题没有其他想法。
您的代码中有逻辑错误
这是正确的代码:
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 以下的素数。