Пытаясь решить проблему: «Найти наибольший простой множитель из 600851475143»
Я пытаюсь решить третью проблему Project Euler.Так как я только начинаю, мои коды все еще довольно плохие, и я мало что знаю о языке.Я был бы очень признателен за обзор.Спасибо!
num = 600851475143
ans3 = []
primes = [x for x in range(num) if x % 2 != 0 and
x % 3 != 0 and
x % 4 != 0 and
x % 5 != 0 and
x % 6 != 0 and
x % 7 != 0 and
x % 8 != 0 and
x % 9 != 0 and
x % 11 != 0 and
x % 13 != 0 and
x % 17 != 0 and
x % 19 != 0 and
x % 23 != 0 and
x % 29 != 0 and
x % 31 != 0]
primes.insert(1, 2)
primes.insert(2, 3)
primes.insert(3, 5)
primes.insert(4, 7)
primes.insert(5, 11)
primes.insert(6, 13)
primes.insert(7, 17)
primes.insert(8, 19)
primes.insert(9, 23)
primes.insert(10, 29)
primes.insert(11, 31)
primes.pop(0)
for x in primes:
if num % x == 0:
ans3.append(x)
print(ans3)
Я не знаю ответа, но он хорошо работает с меньшими числами (например, 13195, который выводит 29).