Найти такие двузначные числа которые в сумме с числом записанным в обратном порядке дают...

0 голосов
80 просмотров

Найти такие двузначные числа которые в сумме с числом записанным в обратном порядке дают полный квадрат Например 29+92=121 корень121=11 НА ПИТОНЕ ЖЕЛАТЕЛЬНО С ПОЯСНЕНИЯМИ


Информатика (28 баллов) | 80 просмотров
Дан 1 ответ
0 голосов

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().

(4.3k баллов)