Когда Учитель достиг просветления, он понял, что должен раздать свои богатства, причём сделать это следующим образом: в первый день разделить все свои золотые монеты на 8 равных частей (счастливое число!), излишки (если таковые будут иметься) пожертвовать храму Будды, оставить себе одну восьмую часть, остальные раздать бедным.
Во второй день вновь разделить оставшиеся монеты на 8 частей и повторить вышеуказанные манипуляции. И продолжать так до тех пор, пока у него не останется так мало монет, что при делении их на 8 равных частей они все окажутся излишком.
Оставшиеся монеты можно оставить себе. Кроме того, Учитель не тратит свои деньги (во всяком случае, в дни после просветления): его кормят ученики, а в быту он аскетичен.
Хотя Учитель знает, конечно, сколько у него золотых монет изначально, но он не может сообразить, сколько монет окажется в конце — всё-таки он Учитель духовных практик, а не математики или программирования. Помогите ему.
Иными словами, найдите первую цифру введённого числа при записи его в системе счисления с основанием 8.
Формат ввода
Одно целое число — изначальное количество монет у Учителя.
Формат вывода
Одно целое число — количество монет, которое останется у Учителя в конце
вот мой код
money = int(input())
while money > 8:
money //= 8
print(money % 8)
на маленьких числах работает без ошибок(как минимум не замечал)
а на числах больших начинаются ошибки
ПРИМЕР:
ввод :
280185
должен быть вывод : 1
а моя программа выдает : 0
Во второй день вновь разделить оставшиеся монеты на 8 частей и повторить вышеуказанные манипуляции. И продолжать так до тех пор, пока у него не останется так мало монет, что при делении их на 8 равных частей они все окажутся излишком.
Оставшиеся монеты можно оставить себе. Кроме того, Учитель не тратит свои деньги (во всяком случае, в дни после просветления): его кормят ученики, а в быту он аскетичен.
Хотя Учитель знает, конечно, сколько у него золотых монет изначально, но он не может сообразить, сколько монет окажется в конце — всё-таки он Учитель духовных практик, а не математики или программирования. Помогите ему.
Иными словами, найдите первую цифру введённого числа при записи его в системе счисления с основанием 8.
Формат ввода
Одно целое число — изначальное количество монет у Учителя.
Формат вывода
Одно целое число — количество монет, которое останется у Учителя в конце
вот мой код
money = int(input())
while money > 8:
money //= 8
print(money % 8)
на маленьких числах работает без ошибок(как минимум не замечал)
а на числах больших начинаются ошибки
ПРИМЕР:
ввод :
280185
должен быть вывод : 1
а моя программа выдает : 0