Top.Mail.Ru
Ответы

ЗАДАЧА НА PYTHON Помогите срочно "Учитель"

Когда Учитель достиг просветления, он понял, что должен раздать свои богатства, причём сделать это следующим образом: в первый день разделить все свои золотые монеты на 8 равных частей (счастливое число!), излишки (если таковые будут иметься) пожертвовать храму Будды, оставить себе одну восьмую часть, остальные раздать бедным.
Во второй день вновь разделить оставшиеся монеты на 8 частей и повторить вышеуказанные манипуляции. И продолжать так до тех пор, пока у него не останется так мало монет, что при делении их на 8 равных частей они все окажутся излишком.

Оставшиеся монеты можно оставить себе. Кроме того, Учитель не тратит свои деньги (во всяком случае, в дни после просветления): его кормят ученики, а в быту он аскетичен.

Хотя Учитель знает, конечно, сколько у него золотых монет изначально, но он не может сообразить, сколько монет окажется в конце — всё-таки он Учитель духовных практик, а не математики или программирования. Помогите ему.

Иными словами, найдите первую цифру введённого числа при записи его в системе счисления с основанием 8.

Формат ввода
Одно целое число — изначальное количество монет у Учителя.

Формат вывода
Одно целое число — количество монет, которое останется у Учителя в конце.

Пример
ВводВывод
129
2

По дате
По рейтингу
Аватар пользователя
Новичок
5лет

Всего лишь школьная математика и никаких циклов:

import math
print(int(8 ** math.modf(math.log(int(input()), 8))[0]))

1. Берем логарифм по основанию 8 от числа монет.
2. Возводим 8 в степень, равную дробной части полученного значения
3. Выводим целую часть результата

Аватар пользователя
Ученик
5лет

monets = int(input())

while monets >= 8:
monets //= 8

print(monets)