Запишите слитно (без пробелов и запятых) в порядке убывания все натуральные числа, меньшие 200, запись которых в четверичной системе счисления оканчивается на 123.
Например, если условию удовлетворяют числа 37 и 45, то ответом будет строка 4537.
Шаг 1. Что нужно найти
Нужны все натуральные числа меньше 200, у которых запись
в четверичной (основание 4) системе счисления оканчивается на
123. Потом их надо выписать по убыванию и
склеить в одну строку без пробелов.
Шаг 2. Как выглядит окончание 1234
Окончание 123 в четверичной системе — это три младших
разряда. В десятичной системе такое «хвостовое» число равно
1·42 + 2·41 + 3·40 = 16 + 8 + 3 = 27.
Значит, любое подходящее число при делении на 64
(43) даёт остаток 27.
Проверим на примере число 27:
n = 27
t = n
s = ""
while t:
s = str(t % 4) + s
t //= 4
print(s) # 123
print(s.endswith("123")) # True
Получили ровно 1234 — условие выполняется.
Шаг 3. Перебор чисел меньше 200
Перебираем все натуральные числа от 1 до 199.
Для каждого строим четверичную запись делением на 4 и собираем остатки
в строку s. Если строка оканчивается на 123,
добавляем число в список nums.
nums = []
for n in range(1, 200):
t = n
s = ""
while t:
s = str(t % 4) + s
t //= 4
if s.endswith("123"):
nums.append(n)
Подходят три числа: 27 (1234),
91 (11234) и
155 (21234).
Шаг 4. Сортировка и склейка
Сортируем найденные числа по убыванию и склеиваем цифры без пробелов
и запятых:
nums.sort(reverse=True)
print("".join(map(str, nums)))
155, 91, 27 → ответ
1559127.
Шаг 1. Что нужно найти
Нужны все натуральные числа меньше 200, у которых запись
в четверичной (основание 4) системе счисления оканчивается на
123. Потом их надо выписать по убыванию и
склеить в одну строку без пробелов.
Шаг 2. Как выглядит окончание 1234
Окончание 123 в четверичной системе — это три младших
разряда. В десятичной системе такое «хвостовое» число равно
1·42 + 2·41 + 3·40 = 16 + 8 + 3 = 27.
Значит, любое подходящее число при делении на 64
(43) даёт остаток 27.
Проверим на примере число 27:
n = 27
t = n
s = ""
while t:
s = str(t % 4) + s
t //= 4
print(s) # 123
print(s.endswith("123")) # True
Получили ровно 1234 — условие выполняется.
Шаг 3. Перебор чисел меньше 200
Перебираем все натуральные числа от 1 до 199.
Для каждого строим четверичную запись делением на 4 и собираем остатки
в строку s. Если строка оканчивается на 123,
добавляем число в список nums.
nums = []
for n in range(1, 200):
t = n
s = ""
while t:
s = str(t % 4) + s
t //= 4
if s.endswith("123"):
nums.append(n)
Подходят три числа: 27 (1234),
91 (11234) и
155 (21234).
Шаг 4. Сортировка и склейка
Сортируем найденные числа по убыванию и склеиваем цифры без пробелов
и запятых:
nums.sort(reverse=True)
print("".join(map(str, nums)))
155, 91, 27 → ответ
1559127.
Шаг 1. Что нужно найти
Нужны все натуральные числа меньше 200, у которых запись
в четверичной (основание 4) системе счисления оканчивается на
123. Потом их надо выписать по убыванию и
склеить в одну строку без пробелов.
Шаг 2. Как выглядит окончание 1234
Окончание 123 в четверичной системе — это три младших
разряда. В десятичной системе такое «хвостовое» число равно
1·42 + 2·41 + 3·40 = 16 + 8 + 3 = 27.
Значит, любое подходящее число при делении на 64
(43) даёт остаток 27.
Проверим на примере число 27:
n = 27
t = n
s = ""
while t:
s = str(t % 4) + s
t //= 4
print(s) # 123
print(s.endswith("123")) # True
Получили ровно 1234 — условие выполняется.
Шаг 3. Перебор чисел меньше 200
Перебираем все натуральные числа от 1 до 199.
Для каждого строим четверичную запись делением на 4 и собираем остатки
в строку s. Если строка оканчивается на 123,
добавляем число в список nums.
nums = []
for n in range(1, 200):
t = n
s = ""
while t:
s = str(t % 4) + s
t //= 4
if s.endswith("123"):
nums.append(n)
Подходят три числа: 27 (1234),
91 (11234) и
155 (21234).
Шаг 4. Сортировка и склейка
Сортируем найденные числа по убыванию и склеиваем цифры без пробелов
и запятых:
nums.sort(reverse=True)
print("".join(map(str, nums)))
155, 91, 27 → ответ
1559127.