0465 - Ogl PP: Difference between revisions

From Bitnami MediaWiki
Pop Giulia (talk | contribs)
Pagină nouă: =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...
 
Pop Giulia (talk | contribs)
No edit summary
 
(One intermediate revision by the same user not shown)
Line 1: Line 1:
Sursa: [https://www.pbinfo.ro/probleme/465/oglpp]
=Cerinţa==
=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.
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.
Line 20: Line 22:
Numerele sunt 100 121 144 169 400 441 484.
Numerele sunt 100 121 144 169 400 441 484.
==Solutie==
==Solutie==
<syntaxhighlight lang="python" line>
def is_square(n):
def is_square(n):
     """Verifică dacă n este pătrat perfect."""
     """Verifică dacă n este pătrat perfect."""
Line 40: Line 43:


print(count)
print(count)
</syntaxhighlight>

Latest revision as of 12:55, 20 May 2023

Sursa: [1]

Cerinţa=[edit | edit source]

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[edit | edit source]

Programul citește de la tastatură numerele a b.

Date de ieşire[edit | edit source]

Programul afișează pe ecran numărul C, reprezentând valoarea căutată.

Restricţii şi precizări[edit | edit source]

1 ≤ a < b ≤ 1.000.000.000

Exemplu:[edit | edit source]

Intrare

100 500 Ieșire

7

Explicație[edit | edit source]

Numerele sunt 100 121 144 169 400 441 484.

Solutie[edit | edit source]

<syntaxhighlight lang="python" line> 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) </syntaxhighlight>