Python

Помогите написать программу пожалуйста

Помогите написать программу пожалуйста На питоне
Как на данном ресурсе принято, вычисляем выражение, да считаем единицы.
 print(oct(7 * 256 ** 2912 + 5 * 64 ** 1954 - 5 * 8 ** 1991 - 4 * 8 ** 1980 - 2022).count('1')) 
Ответ: 1.

Есть, конечно, и нормальный способ это решить, т.е. без вычисления астрономических степеней, но оно вам надо? Крутите бесконечные циклы, а не хватит мощности кластера - закажите в 10 раз больше серверов, распараллельте свои циклы. Сейчас это тренд. И главное - код пишется за 10 секунд, не надо думать час, а время-то идёт.

А если вдруг на эту тему набредёт кто-то, чьи познания не ограничиваются решением квадратных уравнений и записью строчек в обратном порядке, то решается это так. Записываем выражение как линейную комбинацию степеней восьмёрки:
 7 ∙ 256²⁹⁵² = 7 ∙ 2 ∙ 2²³⁶¹⁶ = 1 ∙ 8⁷⁸⁷³ + 6 ∙ 8⁷⁸⁷²
5 ∙ 64¹⁹⁵⁴ = 5 ∙ 2¹¹⁷²⁴ = 5 ∙ 8³⁹⁰⁸
2022 = 3 ∙ 8³ + 7 ∙ 8² + 4 ∙ 8 + 6 = 8⁴ - 4 ∙ 8³ - 0 ∙ 8² - 3 ∙ 8 - 2
Мы видим, что у нас есть единица в коэффициенте при старшей степени (он равен 16). Вычитание 5 на позиции 1991 приведёт к заёму из разрядов 1992-3907, в которых образуются семёрки, 5 на позиции 1991 превратится в 3, а 5 на позиции 3908 превратится в 4. До 16 при 7872 заём даже не дойдёт. При вычитании 4 на позиции 1980 образуются семёрки в разрядах 1981-1990, 3 на позиции 1991 превратится в 2, а на позиции 1980 останется 4. При вычитании 2022 (3746 восьмеричного) перенос превратит 4 на позиции 1980 в 3, на позициях от 4 до 1979 будут семёрки, а в младших разрядах останется то, что я написал выше: 4032. Никакие из этих цифр не являются единицами, кроме одной-единственной в самом старшем разряде. Поэтому ответ: 1 единица. И это вычисляется без всякого Питона.
Vladimir. Tupal
Vladimir. Tupal
87 571
Лучший ответ