Что не так с кодом 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)
ruslanorazayevich:
Хорошо, просто там еще в конце условие не дописано(там просто "...if d else")
ТАК И ДОЛЖНО БЫТЬ!
Если не нравится. Справочник - и переписываешь эту структуру. Это на 5 минут изучения
Условие - тоже читаешь что такое true и false
я у себя на аккаунте задал вопрос, в этом вопросе я положу фотку, как я написал твой, просмотришь...
смотри там отает
кроме цифры вверху
Еще раз перепроверил. Все верно должно быть.
не понял почему вопрос был удален?
напиши мне в лс если что, я просто не понял что произошло
Ответы
Ответ дал:
1
Ответ:
Будет 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)
Еще оптимизировал. В прошлом создавался список простых, здесь нет. Зато считает за секунду. Есть еще оптимизация. Она в другом ответе.
Объяснение:
Проверь это. Ответ кстати тот же - 6857
Вас заинтересует
2 года назад
2 года назад
2 года назад
7 лет назад
9 лет назад
9 лет назад