3497 - Progresie Geom
De la Universitas MediaWiki
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, b
au maximum10.000
de cifren
este 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
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()