3977 - Expo N: Difference between revisions

From Bitnami MediaWiki
Dragos1234 (talk | contribs)
Dragos1234 (talk | contribs)
Line 7: Line 7:


== Date de ieșire ==  
== Date de ieșire ==  
Programul calculează exponentul maxim al puterii lui 2 care este mai mic sau egal cu numărul dat de intrare.
Dacă datele sunt introduse corect, pe ecran se va afișa: " Datele de intrare corespund restrictiilor impuse", apoi pe un rand nou va afișa valoarea cerută. În caz contrar, se va afișa mesajul:" Datele de intrare nu corespund restrictiilor impuse.
 
Datele de ieșire pentru acest program sunt un singur număr întreg, reprezentând exponentul maxim calculat. În cazul în care numărul dat de intrare nu se află în intervalul '''[1, 2.000.000.000]''', programul va afișa un mesaj de eroare.


== Restricţii şi precizări ==
== Restricţii şi precizări ==

Revision as of 15:21, 26 March 2023

Sursa: [1]

Cerinţa

Se citește numărul natural n. Să se determine exponentul maxim e cu proprietatea că 2^e ≤ n.

Date de intrare

Programul citește de la tastatură numărul n.

Date de ieșire

Dacă datele sunt introduse corect, pe ecran se va afișa: " Datele de intrare corespund restrictiilor impuse", apoi pe un rand nou va afișa valoarea cerută. În caz contrar, se va afișa mesajul:" Datele de intrare nu corespund restrictiilor impuse.

Restricţii şi precizări

  • 1 ⩽ n ⩽ 2.000.000.000

Exemplul 1

Intrare
Introduceți numărul n: 40
Ieșire
Exponentul maxim este: 5


Exemplul 2

Intrare
Introduceți numărul n: 20000000000000000000000000000
Ieșire
Eroare: n trebuie să fie între 1 și 2.000.000.000


Rezolvare

<syntaxhighlight lang="python" line>

  1. 3977

def exponent_maxim(n):

   e = 0
   while 2**e <= n:
       e += 1
   return e-1


if __name__ == '__main__':

   n = int(input("Introduceți numărul n: "))
   if n < 1 or n > 2000000000:
       print("Eroare: n trebuie să fie între 1 și 2.000.000.000")
   else:
       print("Exponentul maxim este:", exponent_maxim(n))

</syntaxhighlight>