3977 - Expo N: Diferență între versiuni
De la Universitas MediaWiki
Fără descriere a modificării |
|||
Linia 16: | Linia 16: | ||
: Introduceți numărul n: 40 | : Introduceți numărul n: 40 | ||
; Ieșire | ; Ieșire | ||
: | : Datele introduse corespund cerintelor. | ||
: 5 | |||
<br> | <br> | ||
Versiunea de la data 26 aprilie 2023 17:27
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 rând nou va afișa valoarea exponentului maxim. Î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
- Datele introduse corespund cerintelor.
- 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
#3977
def validare(n):
return 1 <= n <= 2000000000
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 validare(n) is True:
print("Datele de intrare corespund restrictiilor impuse", exponent_maxim(n))
else:
print("Datele de intrare nu corespund restrictiilor impuse")