Что не так с кодом python? (Он работает на маленьких цифрах типа 194 и т. п) Вопрос к которому я писал этот код:Каков самый большой делитель числа 600851475143, являющийся простым числом?

d=0
i=1
a=600851475143
while i<=600851475143:
if (a%i==0) and (i%2!=0) and (i%3!=0) and (i%5!=0) and (i%7!=0) and (d<i):
d=i
i=i+1
continue
print(d)

missirinasmirn missirinasmirn    1   06.07.2022 16:33    0

Ответы
Daann4ik Daann4ik  06.07.2022 16:34

Будет 6857

n=600851475143

md=0

i=3

while i<n:

   if not(n%i):

       while not(n%i):

           n=n/i

       if md<i: md=i

   i+=2

print (md) if n<md else print (n)

Еще оптимизировал. В создавался список простых, здесь нет. Зато считает за секунду. Есть еще оптимизация. Она в другом ответе.

Объяснение:

ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика