0465 - Ogl PP
De la Universitas MediaWiki
Sursa: [1]
Cerinţa=
Se dau 2 numere naturale a b, a < b. Determinați câte numere din intervalul [a,b] sunt pătrate perfecte și au proprietatea că oglinditul lor este pătrat perfect.
Date de intrare
Programul citește de la tastatură numerele a b.
Date de ieşire
Programul afișează pe ecran numărul C, reprezentând valoarea căutată.
Restricţii şi precizări
1 ≤ a < b ≤ 1.000.000.000
Exemplu:
Intrare
100 500 Ieșire
7
Explicație
Numerele sunt 100 121 144 169 400 441 484.
Solutie
def is_square(n):
"""Verifică dacă n este pătrat perfect."""
return int(n ** 0.5) ** 2 == n
def reverse_digits(n):
"""Inversează cifrele unui număr."""
rev = 0
while n > 0:
rev = 10 * rev + n % 10
n //= 10
return rev
a, b = map(int, input().split())
count = 0
for num in range(a, b + 1):
if is_square(num) and is_square(reverse_digits(num)):
count += 1
print(count)