3497 - Progresie Geom

From Bitnami MediaWiki

Cerința[edit | edit source]

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[edit | edit source]

Programul citește de la tastatură numerele x a b n.

Date de ieșire[edit | edit source]

Programul va afișa pe ecran numărul Z, reprezentând al n-lea termen al progresiei.

Restricții și precizări[edit | edit source]

  • x, a, b au maximum 10.000 de cifre
  • n este cel mult 10.000

Exemplul 1[edit | edit source]

Input:

1 5 2 11

Output:

1024

Exemplul 2[edit | edit source]

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[edit | edit source]

<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>