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 = | 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 | |||
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()