3977 - Expo N: Difference between revisions
Dragos1234 (talk | contribs) |
Dragos1234 (talk | contribs) |
||
Line 1: | Line 1: | ||
Sursa: [https://www.pbinfo.ro/probleme/3977/expon] | Sursa: [https://www.pbinfo.ro/probleme/3977/expon] | ||
== Cerinţa == | == Cerinţa == | ||
Se citește numărul natural '''n'''. Să se determine exponentul maxim e cu proprietatea că '''2<sup>e ≤ n'''. | Se citește numărul natural '''n'''. Să se determine exponentul maxim e cu proprietatea că '''2<sup>e''' ≤ n'''. | ||
== Date de intrare == | == Date de intrare == |
Revision as of 17:31, 26 April 2023
Sursa: [1]
Cerinţa
Se citește numărul natural n. Să se determine exponentul maxim e cu proprietatea că 2e ≤ 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
- Datele introduse nu corespund cerintelor.
Rezolvare
<syntaxhighlight lang="python" line>
- 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(f"Datele introduse corespund cerintelor\n{exponent_maxim(n)}") else: print("Datele introduse nu corespund cerintelor.")
</syntaxhighlight>