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)