Задание 25 ЕГЭ: представление числа и условия на цифры
Представление числа и условия на цифры. Тема номера — делители и маски чисел. Ниже — пример с ответом и решением; кнопкой под ним можно решить такую же задачу с другими числами, ответ проверится сразу.
Пример
Перебираются целые числа, большие 344 628, в порядке возрастания.
Найдите первые 5 чисел, которые не содержат в записи цифру 9 и могут быть представлены в виде суммы чётного полного квадрата (квадрата натурального числа) и натуральной степени числа 2 (2¹, 2², 2³, …).
В ответе запишите найденные числа в порядке возрастания, справа от каждого числа — показатель степени числа 2. Запишите каждую пару чисел с новой строки, числа — через пробел.
Ответ
345088 18; 345152 12; 345444 11; 345746 1; 345748 2Решение
Внешний цикл идёт по числам и останавливается, когда набрано пять строк. Дешёвую проверку цифр делаем первой. Затем перебираем натуральные степени 2k, начиная с k = 1 (единица — нулевая степень, она не натуральная), пока степень меньше числа: первое слагаемое должно быть натуральным. Как только подходящая степень нашлась — записываем число с показателем и выходим из цикла по break, чтобы число не попало в ответ дважды. Полный квадрат проверяем в целых числах: r = isqrt(m) и r · r == m (корень через дробную степень может ошибиться на больших числах).
from math import isqrt
res = []
n = 344628
while len(res) < 5:
n += 1
if '9' not in str(n):
k, pw = 1, 2
while pw < n:
m = n - pw
if isqrt(m) ** 2 == m and m % 2 == 0:
res.append((n, k))
break
k += 1
pw *= 2
for n, k in res:
print(n, k)Ответ:
345088 18
345152 12
345444 11
345746 1
345748 2