Информатика, вопрос задал ruslanorazayevich , 2 года назад

3 задача Эйлера. Python.
Заранее предупреждаю, мне нужно понять что не так с "Моим Кодом",мне не нужен ваш код!

Приложения:

Ответы на вопрос

Ответил sskylinesolution
0

Ответ:

Объяснение:

Разбор  кода на скрине

(МОЙ ВАРИАНТ)

num = 600851475143

count = 2

while True:  

if num % count == 0:  

    num = num / count  

    if num == 1:        

   print(count)        

  break    

count += 1

Если у вас останутся вопросы, вы можете задать их в комментариях к этому посту.

Приложения:

ruslanorazayevich: 5 и 6 строка
sskylinesolution: Я уже вам ответил на счёт 5 строчки, делим 600851475143 на count таким образом мы получаем наибольший делитель.Что касается 6 строки,мы проверяем, дошли ли мы до 1,то есть если мы окончательно доделили наше число, то мы прерываем цикл
ruslanorazayevich: я понял, что в 5 строке мы получаем наибольший делитель, но как он понимает, что оно является простым?
sskylinesolution: Извините,я у себя сместил строки,в 5 строке мы делаем проверку на четность,
делится ли число на число без остатка,а в 6 уже делим 600851475143 на count.
sskylinesolution: Надеюсь я вам смог помочь
ruslanorazayevich: я немного видоизменил код, я представляю его примерно таким
ruslanorazayevich: num = 600851475143
count = 2
while True:
if num % count == 0:
if num==count: #условие проверяющее делится ли число само на себя т.е является ли простым
print(count)
num = num/count
if num==1:
break
else:
count += 1
ruslanorazayevich: ой не тот
ruslanorazayevich: а нет тот
ruslanorazayevich: мне вот этой вещи не хватало, просто я не понимаю как она понимает, что число простое
Новые вопросы