不确定为什么试图找到这样的素数因素并不起作用:
primes= [2,3,5]
maximum = int(input("Highest number checked: "))
x = 2
prime = False
while x < maximum:
y = len(primes)
for n in range(2,y):
if x % int(primes[n]) == 0:
prime = True
else:
prime = False
break
if prime == True:
primes.append(x)
x = x+1
print(primes)
输入30张照片2,3,5,5,10,20
答案 0 :(得分:0)
在此行中if x % int(prime[n]) == 0:
将prime
更改为primes
。
答案 1 :(得分:0)
不确定为什么试图找到这样的素数因素并不起作用
它没有用,因为你没有写一个(破碎的)素因子发现程序,你写了一个(破碎的)主要发现程序。如果我们修复并清理它,这应该更明显一点:
primes = [2, 3, 5]
maximum = int(input("Highest number checked: "))
x = 2
while x <= maximum:
is_prime = True
for prime in primes:
if prime * prime > x:
break
if x % prime == 0:
is_prime = False
break
if is_prime:
primes.append(x)
x = x + 1
print(primes)
<强> USAGE 强>
% python3 test.py
Highest number checked: 100
[2, 3, 5, 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]
%
这可以用作素因子发现程序的一部分,但它本身并不充足。你需要处理N个素数列表的某个子集,看看哪个素数是N的因子。代码不比现在多。