0465 - Ogl PP

De la Universitas MediaWiki
Versiunea pentru tipărire nu mai este suportată și poate avea erori de randare. Vă rugăm să vă actualizați bookmarkurile browserului și să folosiți funcția implicită de tipărire a browserului.

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)