3497 - Progresie Geom
Cerința
Se dă o progresie geometrică cu primul termen x, cu rația egală cu , unde [p] reprezintă partea întreagă a numărului real p. Afișați al n-lea termen.
Date de intrare
Programul citește de la tastatură numerele x a b n.
Date de ieșire
Programul va afișa pe ecran numărul Z, reprezentând al n-lea termen al progresiei.
Restricții și precizări
x, a, bau maximum10.000de cifreneste cel mult10.000
Exemplul 1
Input:
1 5 2 11
Output:
1024
Exemplul 2
Input:
1 5 2 9999999999
Output:
Input invalid. Asigurați-vă că x, a, b au cel mult 10.000 de cifre și n este cel mult 10.000.
Rezolvare
<syntaxhighlight lang="python3" line="1"> import math
def verify_input(x, a, b, n):
if len(str(x)) > 10000 or len(str(a)) > 10000 or len(str(b)) > 10000 or n > 10000:
return False
return True
def main():
x = int(input("Introduceți primul termen x: "))
a = int(input("Introduceți a: "))
b = int(input("Introduceți b: "))
n = int(input("Introduceți n: "))
if not verify_input(x, a, b, n):
print("Input invalid. Asigurați-vă că x, a, b au cel mult 10.000 de cifre și n este cel mult 10.000.")
return
# Calcularea [ab] ratio = a // b
# Calcularea al n-lea termen al progresiei result = x * (ratio ** (n - 1))
print(result)
if __name__ == "__main__":
main()
</syntaxhighlight>