14.02 Поиск цифр(-ы) числа
Готовиться с нами - ЛЕГКО!
Ошибка.
Попробуйте повторить позже
Операнды арифметического выражения записаны в системе счисления с основанием 27.
В записи чисел переменной x обозначена неизвестная цифра из алфавита 27-ричной системы счисления. Определите наименьшее значение x, при котором значение данного арифметического выражения кратно 15. Для найденного значения x вычислите частное от деления значения арифметического выражения на 15 и укажите его в ответе в десятичной системе счисления. Основание системы счисления указывать не нужно.
Решение программой:
Даны три числа ,
и
, содержащие переменную x, которая может принимать
значения из алфавита 27-ричной системы счисления. Нам необходимо определить наименьшее значение x, при котором
сумма этих чисел делится на 15, а затем вычислить частное от деления суммы на 15. Для этого мы создаём цикл for x
in ’0123456789ABCDEFGHIJKLMNOPQ’:, который последовательно перебирает все возможные значения x в
27-ричной системе. На каждом шаге мы формируем строки с подставленной цифрой x и преобразуем их в
десятичные числа с помощью функции int(..., 27): s1 = int(’2F’+x+’L325’, 27), s2 = int(’17’+x+’BC5’, 27)
и s3 = int(’31’+x+’MN’, 27). Далее находим сумму этих чисел s = s1 + s2 + s3 и проверяем, делится
ли сумма на 15 через if s % 15 == 0. Как только находим наименьшее x, удовлетворяющее условию,
выводим x и частное от деления суммы на 15 с помощью print(x, s // 15) и прерываем цикл командой
break.
# Перебираем все возможные цифры x в 27-ричной системе for x in ’0123456789ABCDEFGHIJKLMNOPQ’: # Преобразуем первое число $2FxL325_{27}$ в десятичную систему s1 = int(’2F’+ x +’L325’, 27) # Преобразуем второе число $17xBC5_{27}$ в десятичную систему s2 = int(’17’ + x + ’BC5’, 27) # Преобразуем третье число $31xMN_{27}$ в десятичную систему s3 = int(’31’ + x + ’MN’, 27) # Вычисляем сумму трёх чисел s = s1 + s2 + s3 # Проверяем, делится ли сумма на 15 if s % 15 == 0: # Если делится, выводим текущее значение x и частное от деления суммы на 15 print(x, s // 15) # Прерываем цикл, так как найдено наименьшее подходящее значение x break
Ошибка.
Попробуйте повторить позже
Операнды арифметического выражения записаны в системе счисления с основанием 20.
В записи чисел переменной x обозначена неизвестная цифра из алфавита 20-ричной системы счисления. Определите наибольшее значение x, при котором значение данного арифметического выражения кратно 13. Для найденного значения x вычислите частное от деления значения арифметического выражения на 13 и укажите его в ответе в десятичной системе счисления. Основание системы счисления указывать не нужно.
Решение программой:
Даны четыре числа ,
,
и
, содержащие переменную x, которая может
принимать значения из алфавита 20-ричной системы счисления. Наша задача — определить наибольшее значение
x, при котором сумма этих чисел делится на 13, а затем вычислить частное от деления суммы на 13.
Для этого мы создаём цикл for x in ’0123456789ABCDEFGHIJ’:, который последовательно перебирает все
возможные значения x в 20-ричной системе. На каждом шаге мы формируем строки с подставленной
цифрой x и преобразуем их в десятичные числа с помощью функции int(..., 20): s1 = int(’34’+x+’DJ’+x,
20), s2 = int(x+’FI78’, 20), s3 = int(’80A’+x+’7’, 20) и s4 = int(’3IF49’+x+’2’, 20). Далее находим сумму
этих чисел s = s1 + s2 + s3 + s4 и проверяем, делится ли сумма на 13 через if s % 13 == 0. Как только
находим наибольшее x, удовлетворяющее условию, выводим x и частное от деления суммы на 13 с помощью
print(x, s // 13). Таким образом, алгоритм последовательно перебирает варианты x, конвертирует числа
из 20-ричной системы в десятичную, проверяет делимость на 13 и выводит результат для наибольшего
x.
# Перебираем все возможные цифры x в 20-ричной системе for x in ’0123456789ABCDEFGHIJ’: # Преобразуем первое число $34xDJx_{20}$ в десятичную систему s1 = int(’34’ + x + ’DJ’ + x, 20) # Преобразуем второе число $xFI78_{20}$ в десятичную систему s2 = int(x + ’FI78’, 20) # Преобразуем третье число $80Ax7_{20}$ в десятичную систему s3 = int(’80A’ + x + ’7’, 20) # Преобразуем четвёртое число $3IF49x2_{20}$ в десятичную систему s4 = int(’3IF49’ + x + ’2’, 20) # Вычисляем сумму четырёх чисел s = s1 + s2 + s3 + s4 # Проверяем, делится ли сумма на 13 if s % 13 == 0: # Если делится, выводим текущее значение x и частное от деления суммы на 13 print(x, s // 13)
Ошибка.
Попробуйте повторить позже
Операнды арифметического выражения записаны в системе счисления с основанием 45.
В записи чисел переменной x обозначена неизвестная цифра из алфавита 45-ричной системы счисления. Определите наибольшее значение x, при котором значение данного арифметического выражения кратно 26. Для найденного значения x вычислите частное от деления значения арифметического выражения на 26 и укажите его в ответе в десятичной системе счисления. Основание системы счисления указывать не нужно.
Решение программой:
Даны два числа и
, содержащие переменную x, которая может принимать значения от 0 до 44,
так как мы работаем в 45-ричной системе. Наша задача — найти наибольшее значение x, при котором сумма этих
чисел делится на 26, а затем вычислить частное от деления суммы на 26. Для этого мы используем цикл
for x in range(45):, который перебирает все возможные значения x. Каждое число мы представляем в
десятичной системе через разложение по степеням 45, учитывая позиции каждой цифры: для первого
числа
старшая цифра Z равна 35, следующая x умножается на
, далее X = 33 на
, 9
на
и 8 на
, что записано как s1 = 35 * 45 ** 4 + x * 45 ** 3 + 33 * 45 ** 2 + 9 * 45 + 8. Для
второго числа
аналогично: x на
, 3 на
, 9 на
, 9 на
, 6 на
, 2 на
, что
соответствует s2 = x * 45 ** 5 + 3 * 45 ** 4 + 9 * 45 ** 3 + 9 * 45 ** 2 + 6 * 45 + 2. Далее находим
сумму этих чисел s = s1 + s2 и проверяем, делится ли она на 26 через if s % 26 == 0. Как только найдено
наибольшее x, удовлетворяющее условию, выводим его и частное от деления суммы на 26 с помощью
print(x, s // 26). Таким образом, алгоритм последовательно перебирает значения x, преобразует числа
из 45-ричной системы в десятичную, проверяет делимость на 26 и выводит результат для наибольшего
x.
# Перебираем все возможные значения x от 0 до 44 for x in range(45): # Вычисляем первое число $ZxX98_{45}$ в десятичной системе s1 = 35 * 45 ** 4 + x * 45 ** 3 + 33 * 45 ** 2 + 9 * 45 + 8 # Вычисляем второе число $x39962_{45}$ в десятичной системе s2 = x * 45 ** 5 + 3 * 45 ** 4 + 9 * 45 ** 3 + 9 * 45 ** 2 + 6 * 45 + 2 # Находим сумму чисел s = s1 + s2 # Проверяем, делится ли сумма на 26 if s % 26 == 0: # Если делится, выводим текущее значение x и частное от деления на 26 print(x, s // 26)
Ошибка.
Попробуйте повторить позже
Операнды арифметического выражения записаны в системе счисления с основанием 76.
В записи чисел переменной x обозначена неизвестная цифра из алфавита 76-ричной системы счисления. Определите значение x, при котором значение данного арифметического выражения кратно 54. Для найденного значения x вычислите частное от деления значения арифметического выражения на 54 и укажите его в ответе в десятичной системе счисления. Основание системы счисления указывать не нужно.
Решение программой:
Даны три числа ,
и
, содержащие переменную x, которая может принимать
значения от 0 до 75, так как мы работаем в 76-ричной системе. Наша задача — найти такое значение x,
при котором сумма этих чисел делится на 54, а затем вычислить частное от деления суммы на 54. Для
этого мы используем цикл for x in range(76):, который перебирает все возможные значения x. Каждое
число представлено в десятичной системе через разложение по степеням 76, учитывая позиции каждой
цифры.
Для первого числа старшая цифра M = 22 на
, далее 3 на
, 7 на
, x на
, 0 на
, X
= 33 на
и W = 32 на
, что записано как s1 = 22 * 76 ** 6 + 3 * 76 ** 5 + 7 * 76 ** 4 + x * 76 ** 3 + 33 * 76 +
32.
Для второго числа аналогично: O = 24 на
, 0 на
, 2 на
, 3 на
, x на
, P = 25 на
, Q = 26 на
, что соответствует s2 = 24 * 76 ** 6 + 2 * 76 ** 4 + 3 * 76 ** 3 + x * 76 ** 2 + 25 * 76 +
26.
Третье число преобразуем аналогично: E = 14 на
, P = 25 на
, 2 на
, 2 на
, 4 на
,
x на
, x на
, что записано как s3 = 14 * 76 ** 6 + 25 * 76 ** 5 + 2 * 76 ** 4 + 2 * 76 ** 3 + 4 * 76 ** 2 + x * 76
+ x.
Далее суммируем все три числа s = s1 + s2 + s3 и проверяем, делится ли сумма на 54 через if s % 54 == 0. Как только найдено подходящее значение x, выводим его и частное от деления суммы на 54 с помощью print(x, s // 54).
# Перебираем все возможные значения x от 0 до 75 for x in range(76): # Вычисляем первое число $M37x0XW_{76}$ в десятичной системе s1 = 22 * 76 ** 6 + 3 * 76 ** 5 + 7 * 76 ** 4 + x * 76 ** 3 + 33 * 76 + 32 # Вычисляем второе число $O023xPQ_{76}$ в десятичной системе s2 = 24 * 76 ** 6 + 2 * 76 ** 4 + 3 * 76 ** 3 + x * 76 ** 2 + 25 * 76 + 26 # Вычисляем третье число $EP224xx_{76}$ в десятичной системе s3 = 14 * 76 ** 6 + 25 * 76 ** 5 + 2 * 76 ** 4 + 2 * 76 ** 3 + 4 * 76 ** 2 + x * 76 + x # Находим сумму чисел s = s1 + s2 + s3 # Проверяем, делится ли сумма на 54 if s % 54 == 0: # Если делится, выводим текущее значение x и частное от деления на 54 print(x, s // 54)
Ошибка.
Попробуйте повторить позже
Операнды арифметического выражения записаны в системе счисления с основанием 32.
В записи чисел переменной x обозначена неизвестная цифра из алфавита 32-ричной системы счисления. Определите значение x, при котором значение данного арифметического выражения кратно 64. Для найденного значения x вычислите частное от деления значения арифметического выражения на 64 и укажите его в ответе в десятичной системе счисления. Основание системы счисления указывать не нужно.
Решение программой:
Даны пять чисел ,
,
,
и
, содержащие переменную x, которая
может принимать значения от 0 до 31, поскольку мы работаем в 32-ричной системе. Наша цель — найти такое значение
x, при котором сумма этих чисел делится на 64, а затем вычислить частное от деления суммы на 64. Для этого мы
используем цикл for x in ’0123456789ABCDEFGHIJKLMNOPQRSTUV’:, перебирающий все допустимые значения x,
представленные в виде символов строки. Каждое число преобразуем в десятичное с помощью функции int(),
где первый аргумент — это строковое представление числа, а второй аргумент — основание системы
счисления, в данном случае 32. Например, для числа
мы формируем строку ’2’ + x + ’137’ и
передаем её в int(’2’ + x + ’137’, 32) для получения десятичного значения s1. Аналогично формируем
строки для остальных чисел: ’735’ + x + ’5127’ + x для
, ’32’ + x + ’2’ для
, ’3’ + x +
’188’ для
и ’1’ + x + ’74’ + x + ’19’ для
, и получаем их десятичные значения s2,
s3, s4, s5. Затем суммируем все числа s = s1 + s2 + s3 + s4 + s5 и проверяем, делится ли сумма на 64
с помощью if s % 64 == 0. Как только условие выполняется, выводим текущее значение x и частное
от деления суммы на 64 через print(x, s // 64). Таким образом, алгоритм перебирает все возможные
значения x, преобразует числа из 32-ричной системы в десятичную, проверяет делимость на 64 и выводит
результат.
# Перебираем все возможные значения x от 0 до 31 в 32-ричной системе for x in "0123456789ABCDEFGHIJKLMNOPQRSTUV": # Вычисляем первое число $2x137_{32}$ в десятичной системе s1 = int("2" + x + "137", 32) # Вычисляем второе число $735x5127x_{32}$ в десятичной системе s2 = int("735" + x + "5127" + x , 32) # Вычисляем третье число $32x2_{32}$ в десятичной системе s3 = int("32" + x + "2", 32) # Вычисляем четвертое число $3x188_{32}$ в десятичной системе s4 = int("3" + x + "188", 32) # Вычисляем пятое число $1x74x19_{32}$ в десятичной системе s5 = int("1" + x + "74" + x + "19", 32) # Находим сумму чисел s = s1 + s2 + s3 + s4 + s5 # Проверяем, делится ли сумма на 64 if s % 64 == 0: # Если делится, выводим текущее значение x и частное от деления на 64 print(x, s // 64)
Ошибка.
Попробуйте повторить позже
Операнды арифметического выражения записаны в системе счисления с основанием 28.
В записи чисел переменной x обозначена неизвестная цифра из алфавита 28-ричной системы счисления. Определите наименьшее значение x, при котором значение данного арифметического выражения кратно 18. Для найденного значения x вычислите частное от деления значения арифметического выражения на 18 и укажите его в ответе в десятичной системе счисления. Основание системы счисления указывать не нужно.
Решение программой:
Даны четыре числа ,
,
и
, содержащие переменную x, которая может
принимать значения от 0 до 27, поскольку мы работаем в 28-ричной системе. Наша цель — найти наименьшее значение
x, при котором сумма этих чисел делится на 18, а затем вычислить частное от деления суммы на 18. Для этого мы
используем цикл for x in ’0123456789ABCDEFGHIJKLMNOPQR’:, перебирающий все допустимые значения x,
представленные в виде символов строки. Каждое число преобразуем в десятичное с помощью функции int(), где первый
аргумент — это строковое представление числа, а второй аргумент — основание системы счисления, в данном случае 28.
Например, для числа
мы формируем строку ’3LF’ + x и передаем её в int(’3LF’ + x, 28) для получения
десятичного значения s1. Аналогично формируем строки для остальных чисел: ’67BFC’ + x + ’N’ для
, ’4’ + x + ’982D’ для
и ’PQ20’ + x + ’6’ для
, и получаем их десятичные
значения s2, s3, s4. Затем суммируем все числа s = s1 + s2 + s3 + s4 и проверяем, делится ли сумма на 18
с помощью if s % 18 == 0. Как только условие выполняется, выводим текущее значение x и частное
от деления суммы на 18 через print(x, s // 18). Таким образом, алгоритм перебирает все возможные
значения x, преобразует числа из 28-ричной системы в десятичную, проверяет делимость на 18 и выводит
результат.
# Перебираем все возможные значения x от 0 до 27 в 28-ричной системе for x in "0123456789ABCDEFGHIJKLMNOPQR": # Вычисляем первое число $3LFx_{28}$ в десятичной системе s1 = int("3LF" + x, 28) # Вычисляем второе число $67BFCxN_{28}$ в десятичной системе s2 = int("67BFC" + x + "N", 28) # Вычисляем третье число $4x982D_{28}$ в десятичной системе s3 = int("4" + x + "982D", 28) # Вычисляем четвертое число $PQ20x6_{28}$ в десятичной системе s4 = int("PQ20" + x + "6", 28) # Находим сумму чисел s = s1 + s2 + s3 + s4 # Проверяем, делится ли сумма на 18 if s % 18 == 0: # Если делится, выводим текущее значение x и частное от деления на 18 print(x, s // 18)
Ошибка.
Попробуйте повторить позже
Операнды арифметического выражения записаны в системах счисления с основаниями 30, 98 и 112.
В записи чисел переменной x обозначена неизвестная цифра. Определите наибольшее значение x, при котором значение данного арифметического выражения кратно 21. Для найденного значения x вычислите частное от деления значения арифметического выражения на 21 и укажите его в ответе в десятичной системе счисления. Основание системы счисления указывать не нужно.
Решение программой:
В задаче даны три числа, записанные в разных системах счисления: ,
и
, где x —
неизвестная цифра, которую требуется определить. Наша цель — найти наибольшее значение x, при котором сумма
этих чисел делится на 21, а затем вычислить частное от деления суммы на 21. Для решения мы используем цикл for x
in range(30):, так как x не может быть больше наибольшей цифры из числа с наименьшим основанием (в данном случае
30). Внутри цикла мы вычисляем десятичное значение каждого числа, раскладывая его по степеням основания
соответствующей системы счисления. Для первого числа
применяем формулу s1 = 7 * 112 **
2 + x, где 7 — старшая цифра, 0 — средняя цифра, а x — неизвестная. Для второго числа
вычисляем s2 = 9 * 98 ** 4 + 8 * 98 ** 3 + x * 98 ** 2 + 10 * 98 + 16, где цифры A и G переведены в
десятичные значения 10 и 16 соответственно. Для третьего числа
аналогично строим s3 = 1 * 30
** 4 + 2 * 30 ** 3 + 12 * 30 ** 2 + x * 30 + 20, где C и K переведены в 12 и 20. Затем суммируем все
числа s = s1 + s2 + s3 и проверяем, делится ли сумма на 21 с помощью условия if s % 21 == 0. Как
только находим такое x, выводим его и частное от деления суммы на 21 через print(x, s // 21). Таким
образом, алгоритм перебирает все возможные значения x, переводит числа из разных систем счисления в
десятичные, проверяет делимость суммы на 21 и выводит результат для наибольшего x, удовлетворяющего
условию.
# Перебираем все возможные значения x от 0 до 29 for x in range(30): # Вычисляем первое число $70x_{112}$ в десятичной системе s1 = 7 * 112 ** 2 + x # Вычисляем второе число $98xAG_{98}$ в десятичной системе s2 = 9 * 98 ** 4 + 8 * 98 ** 3 + x * 98 ** 2 + 10 * 98 + 16 # Вычисляем третье число $12CxK_{30}$ в десятичной системе s3 = 1 * 30 ** 4 + 2 * 30 ** 3 + 12 * 30 ** 2 + x * 30 + 20 # Находим сумму чисел s = s1 + s2 + s3 # Проверяем, делится ли сумма на 21 if s % 21 == 0: # Если делится, выводим текущее значение x и частное от деления на 21 print(x, s // 21)
Ошибка.
Попробуйте повторить позже
Операнды арифметического выражения записаны в системах счисления с основаниями 12 и 78.
В записи чисел переменной x обозначена неизвестная цифра. Определите значения x, при которых значение данного арифметического выражения кратно 15. Для найденных значений x вычислите сумму частных от деления значения арифметического выражения на 15 и укажите ее в ответе в десятичной системе счисления. Основание системы счисления указывать не нужно.
Решение программой:
В задаче даны два числа, записанные в разных системах счисления: и
, где x —
неизвестная цифра. Нам требуется найти все значения x, при которых сумма этих чисел делится на 15, и
затем вычислить сумму частных от деления этой суммы на 15. Для решения мы используем цикл for x
in range(12):, так как x не может превышать наибольшей цифры из числа с наименьшим основанием
(в данном случае 12). Внутри цикла мы вычисляем десятичное значение первого числа
,
раскладывая его по степеням 12: s1 = 11 * 12 ** 6 + 7 * 12 ** 5 + 6 * 12 ** 4 + 10 * 12 ** 3 + x * 12
** 2 + 5 * 12 + 6, где цифры B и A переведены в 11 и 10 соответственно, а x подставляется на месте
неизвестной цифры. Для второго числа
аналогично раскладываем по степеням 78: s2
= 32 * 78 ** 7 + 24 * 78 ** 6 + 32 * 78 ** 5 + 78 ** 4 + x * 78 ** 3 + 9 * 78 ** 2 + 2 * 78 + 21, где
цифры W, O и L переведены в десятичные значения 32, 24 и 21, а x подставляется на соответствующем
месте. Далее суммируем числа s = s1 + s2 и проверяем делимость суммы на 15 через if s % 15 == 0. Если
условие выполняется, добавляем частное от деления на 15 в множество a, чтобы избежать повторов. После
перебора всех возможных x суммируем все элементы множества a с помощью sum(a), получая итоговый
ответ.
# Создаем пустое множество для хранения частных от деления на 15 a = set() # Перебираем все возможные значения x от 0 до 11 for x in range(12): # Вычисляем первое число $B76Ax56_{12}$ в десятичной системе s1 = 11 * 12 ** 6 + 7 * 12 ** 5 + 6 * 12 ** 4 + 10 * 12 ** 3 + x * 12 ** 2 + 5 * 12 + 6 # Вычисляем второе число $WOW1x92L_{78}$ в десятичной системе s2 = 32 * 78 ** 7 + 24 * 78 ** 6 + 32 * 78 ** 5 + 78 ** 4 + x * 78 ** 3 + 9 * 78 ** 2 + 2 * 78 + 21 # Находим сумму чисел s = s1 + s2 # Проверяем, делится ли сумма на 15 if s % 15 == 0: # Если делится, добавляем частное от деления на 15 во множество a.add(s // 15) # Выводим сумму всех частных от деления на 15 print(sum(a))
Ошибка.
Попробуйте повторить позже
Операнды арифметического выражения записаны в системе счисления с основанием 14.
В записи чисел переменной x обозначена неизвестная цифра из алфавита 14-ричной системы счисления. Определите наибольшее значение x, при котором значение данного арифметического выражения кратно 8. Для найденного x вычислите частное от деления значения арифметического выражения на 8 и укажите его в ответе в десятичной системе счисления. Основание системы счисления указывать не нужно.
Решение программой:
В задаче даны два числа, записанные в 14-ричной системе счисления: и
, где x — неизвестная
цифра. Нам требуется найти наибольшее значение x, при котором сумма этих чисел делится на 8, и затем вычислить
частное от деления этой суммы на 8. Для решения мы перебираем все возможные значения x из алфавита 14-ричной
системы, задавая цикл for x in ’0123456789ABCD’:, так как наибольшая цифра в 14-ричной системе — D
(соответствует 13 в десятичной). Внутри цикла мы вычисляем десятичное значение первого числа
с
помощью функции int, передавая строковое представление числа с подставленным x и указывая основание
14: s1 = int(’9’ + x + ’9’ + x, 14). Аналогично для второго числа
: s2 = int(’A’ + x + ’90’, 14),
где A соответствует 10 в десятичной системе, а x подставляется на месте неизвестной цифры. Далее
суммируем эти два числа s = s1 + s2 и проверяем делимость суммы на 8 через условие if s % 8 == 0. Если
сумма делится на 8, выводим текущее значение x и частное от деления суммы на 8 через print(x, s //
8).
# Перебираем все возможные значения x из алфавита 14-ричной системы for x in ’0123456789ABCD’: # Вычисляем первое число $9x9x_{14}$ в десятичной системе s1 = int(’9’ + x + ’9’ + x, 14) # Вычисляем второе число $Ax90_{14}$ в десятичной системе s2 = int(’A’ + x + ’90’, 14) # Находим сумму чисел s = s1 + s2 # Проверяем, делится ли сумма на 8 if s % 8 == 0: # Если делится, выводим текущее значение x и частное от деления на 8 print(x, s // 8)
Ошибка.
Попробуйте повторить позже
Значение арифметического выражения
записали в системе счисления с основанием 16. Сколько значащих нулей содержится в этой записи?
В задаче требуется посчитать количество значащих нулей в записи некоторого большого числа в шестнадцатеричной
системе счисления. Сначала мы должны вычислить значение самого выражения: оно состоит из нескольких слагаемых,
каждое из которых записано через степень числа 4. Например, первый член означает, что берётся
число
и умножается на 3, второй член
аналогично даёт
, затем добавляются
,
,
и 1. Все эти слагаемые складываются, и мы получаем итоговое число, которое сохраняем в
переменной s. Далее мы должны преобразовать это число в систему счисления с основанием 16. Для этого мы
используем строку alph = ’0123456789ABCDEF’, где последовательно записаны все символы, которые
используются в шестнадцатеричной системе. После этого мы начинаем цикл, в котором берём остаток от деления
текущего числа s на 16 (операция s % 16), чтобы найти последнюю цифру в шестнадцатеричной записи, и с
помощью индексации обращаемся к соответствующему символу в строке alph. Так мы находим символ для
текущей цифры и добавляем его в начало результирующей строки hexed. Затем делим число s нацело
на 16 (операция s //= 16), чтобы отбросить уже найденную цифру, и продолжаем цикл, пока число не
станет равным нулю. В итоге строка hexed будет содержать полную шестнадцатеричную запись исходного
выражения. Последний шаг — подсчитать количество нулей в этой строке. Для этого используем метод
hexed.count(’0’), который возвращает количество символов ’0’ в строке hexed. Полученное число и будет ответом
задачи.
# Вычисляем значение выражения: складываем несколько степеней числа 4, # умноженных на коэффициенты, и добавляем 1 s = 3 * 4 ** 38 + 2 * 4 ** 23 + 4 ** 20 + 3 * 4 ** 5 + 4 ** 4 + 1 # Строка, содержащая все символы шестнадцатеричной системы счисления: # от "0" до "9" и далее "A", "B", "C", "D", "E", "F" alph = "0123456789ABCDEF" # Переменная для хранения шестнадцатеричной записи числа hexed = "" # Цикл, пока число s больше нуля while s > 0: # Остаток от деления числа на 16 даёт индекс нужной цифры # Находим символ в строке alph и добавляем его в начало записи hexed = alph[s % 16] + hexed # Делим число нацело на 16, убирая последнюю цифру s //= 16 # Считаем количество нулей в строке hexed print(hexed.count("0"))