2747 - Log: Diferență între versiuni

De la Universitas MediaWiki
Linia 22: Linia 22:
==Rezolvare==
==Rezolvare==
<syntaxhighlight lang="python" line="1">
<syntaxhighlight lang="python" line="1">
n, m = map(int, input().split())
def validate_input(n, m):
exponent = 0
    #Validare input
    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


while m != 1:
    m //= n
    exponent += 1


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

Versiunea de la data 24 martie 2023 15:19

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

def validate_input(n, m):
    #Validare input
    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 = 0
    while m > n:
        m //= n
        exponent += 1
    return exponent


def main():
    # Citire input și validare
    n, m = map(int, input("Introduceți n și m, separate prin spațiu: ").split())
    while not validate_input(n, m):
        n, m = map(int, input("Introduceți n și m, separate prin spațiu: ").split())

    # Calcul și afișare rezultat
    exponent = compute_exponent(n, m)
    print(f"Exponentul la care trebuie ridicat {n} pentru a obține {m} este: {exponent}")


if __name__ == "__main__":
    main()