3977 - Expo N: Difference between revisions
Dragos1234 (talk | contribs) |
Dragos1234 (talk | contribs) |
||
Line 26: | Line 26: | ||
; Ieșire | ; Ieșire | ||
: Eroare: n trebuie să fie între 1 și 2.000.000.000 | : Eroare: n trebuie să fie între 1 și 2.000.000.000 | ||
<br> | <br> | ||
Revision as of 15:29, 25 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
Programul calculează exponentul maxim al puterii lui 2 care este mai mic sau egal cu numărul dat de intrare.
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
- 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>
- 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>