3977 - Expo N: Difference between revisions

From Bitnami MediaWiki
Dragos1234 (talk | contribs)
No edit summary
Line 29: Line 29:
<syntaxhighlight lang="python" line>
<syntaxhighlight lang="python" line>
#3977
#3977
def validare(n):
    return 1 <= n <= 2000000000
def exponent_maxim(n):
def exponent_maxim(n):
     e = 0
     e = 0
Line 38: Line 41:
if __name__ == '__main__':
if __name__ == '__main__':
     n = int(input("Introduceți numărul n: "))
     n = int(input("Introduceți numărul n: "))
     if n < 1 or n > 2000000000:
     if validare(n) is True:
         print("Eroare: n trebuie să fie între 1 și 2.000.000.000")
         print("Datele de intrare corespund restrictiilor impuse", exponent_maxim(n))
     else:
     else:
         print("Exponentul maxim este:", exponent_maxim(n))
         print("Datele de intrare nu corespund restrictiilor impuse")
 
 


</syntaxhighlight>
</syntaxhighlight>

Revision as of 21:52, 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 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")


</syntaxhighlight>