2747 - Log: Difference between revisions

From Bitnami MediaWiki
Paul Ungur (talk | contribs)
Paul Ungur (talk | contribs)
No edit summary
Line 22: Line 22:
==Rezolvare==
==Rezolvare==
<syntaxhighlight lang="python" line="1">
<syntaxhighlight lang="python" line="1">
def validate_input(n, m):
def validare_date(n, m):
    #Validare input
     if not (1 <= n <= 1000000) or not (1 <= m <= 1000000):
     if not (1 <= n <= 1000000) or not (1 <= m <= 1000000):
         print("n și m trebuie să fie între 1 și 1.000.000.")
         print("n și m trebuie să fie între 1 și 1.000.000.")
Line 38: Line 37:
def compute_exponent(n, m):
def compute_exponent(n, m):
     #Determină exponentul la care trebuie ridicat n pentru a obține m.
     #Determină exponentul la care trebuie ridicat n pentru a obține m.
     exponent = 0
     exponent = 1
     while m > n:
     while m > n:
         m //= n
         m //= n
         exponent += 1
         exponent += 1
     return exponent
     print(f"Exponentul la care trebuie ridicat {n} pentru a obține {m} este: {exponent}")




def main():
if __name__ == "__main__":
     # Citire input și validare
     # Citire input și validare
     n, m = map(int, input("Introduceți n și m, separate prin spațiu: ").split())
     n, m = map(int, input("Introduceți n și m, separate prin spațiu: ").split())
     while not validate_input(n, m):
     if validare_date(n, m):
        n, m = map(int, input("Introduceți n și m, separate prin spațiu: ").split())
        exponent = compute_exponent(n, m)
 
    else:
    # Calcul și afișare rezultat
        while not validare_date(n, m):
    exponent = compute_exponent(n, m)
            n, m = map(int, input("Introduceți n și m, separate prin spațiu: ").split())
    print(f"Exponentul la care trebuie ridicat {n} pentru a obține {m} este: {exponent}")
 
 
if __name__ == "__main__":
    main()
</syntaxhighlight>
</syntaxhighlight>

Revision as of 15:51, 26 April 2023

Cerința

Se dau numerele n și m. Să se determine exponentul la care se ridică n pentru a obține m.

Date de intrare

Programul citește de la tastatură numerele n și m, separate prin spații.

Date de ieșire

Programul va afișa pe ecran exponentul la care se ridică n pentru a obține m.

Restricții și precizări

1 ≤ n , m ≤ 1.000.000 n ≠ 1 se garantează ca m este putere a lui n</span.

Exemplu:

Intrare 2 4

Ieșire 2

Rezolvare

<syntaxhighlight lang="python" line="1"> def validare_date(n, m):

   if not (1 <= n <= 1000000) or not (1 <= m <= 1000000):
       print("n și m trebuie să fie între 1 și 1.000.000.")
       return False
   if n == 1:
       print("n trebuie să fie diferit de 1.")
       return False
   if m % n != 0:
       print("m trebuie să fie putere a lui n.")
       return False
   return True


def compute_exponent(n, m):

   #Determină exponentul la care trebuie ridicat n pentru a obține m.
   exponent = 1
   while m > n:
       m //= n
       exponent += 1
   print(f"Exponentul la care trebuie ridicat {n} pentru a obține {m} este: {exponent}")


if __name__ == "__main__":

   # Citire input și validare
   n, m = map(int, input("Introduceți n și m, separate prin spațiu: ").split())
   if validare_date(n, m):
       exponent = compute_exponent(n, m)
   else:
       while not validare_date(n, m):
           n, m = map(int, input("Introduceți n și m, separate prin spațiu: ").split())

</syntaxhighlight>