import math
for i in range(10, 99 + 1):
if math.sqrt(i % 10 * 10 + i // 10 + i) % 1 == 0:
print(i)
Пояснения:
Перебираем с цикла for список всех двузначных чисел, созданный с функции range(10, 99 + 1).
i % 10 * 10 + i // 10 — меняем местами десятки и единицы (например, 29 превращаем в 92):
i % 10 — получаем десяткиi // 10 — получаем единицыПотом добавляем к полученному наше исходное число (например, 29 превращается в 92 и к нему прибавляется 29). Из этой суммы находим квадрат с функции sqrt() из модуля math (мы его подключили первой строкой import math). Чтобы проверить, полный ли квадрат получается из этого числа, нужно проверить, имеет ли остаток полученный корень. Я нашел остаток от деления с конструкции root % 1. Если остаток равен нулю, то квадрат полный, следовательно выводим число в консоль с функции print().
7
Объяснение:
Просто подставляем каждую пару чисел в программу (s;k)
У нас НЕ должно выполняться условие
если s>A или k>9
Значит у нас не должно выполняться точно 2-ое условие: Оно не выполняется при парах чисел:
(8;-10) (16;2) (5;-5) (-3:9) (-10;7) (-10;-2) (14;1) (20;5)
Теперь из этих пар мы подбираем такое А, которое будет ≈ в середине s, т.е. между [-10;20]
Т.е. минимальных 4 значения s мы исключаем, потому что должно ХОТЯ БЫ выполниться условие s>A
Получаем, что у нас останутся пары:
(8;-10) (16;2) (14;1) (20;5)
Вот и подбираем такое A, чтобы s>A
Максимальное s=20, значит оно тоже не подойдет
Минимальное s=8, значит с него должно выполняться условие s>A , => наибольшее А = 7