Python. Задача 8-5
Пользователь вводит натуральное число N. Вывести все такие значения среди чисел 1..N, запись которых совпадает с последними цифрами их квадрата. Например 6, 36.
Задачу решить двумя способами: с использованием и без использования строк.
Решение
Вариант с использованием строк:
N = int(input())
for i in range(1, N + 1):
s = str(i)
s2 = str(i * i)
# Сравниваем строку числа с соответствующим срезом строки квадрата
if s == s2[len(s2) - len(s):]:
print(s, s2)
Вариант без использования строк:
N = int(input())
for i in range(1, N + 1):
num = i
num2 = num * num
while num > 0:
# Сравниваем последние цифры числа и его квадрата
if num % 10 != num2 % 10:
break
# Отсекаем последние цифры у числа и его квадрата
num //= 10
num2 //= 10
else:
# Цикл закончился без прерывания, т.е. все цифры совпадают
print(i, i * i)