2699 - Puterile Lui N

From Bitnami MediaWiki
Revision as of 15:57, 26 April 2023 by Paul Ungur (talk | contribs)

Date de intrare

Programul citește de la tastatură numerele n, și p, separate prin spații.

Date de ieșire

Programul va afișa pe ecran în ordine crescătoare, toate puterile lui n mai mici sau egale cu p, separate prin exact un spațiu.

Restricții și precizări 2 ≤ n ≤ 10 1 ≤ p ≤ 1.000.000.000.000

Exemplu: Intrare

4 120 Ieșire

1 4 16 64

Rezolvare

<syntaxhighlight lang="python" line="1"> def validare_date(n: int, p: int) -> bool:

   """
   Functia de validare pentru input.
   Verifica daca n este intre 2 si 10 si daca p este intre 1 si 1.000.000.000.000.
   """
   if not (2 <= n <= 10):
       print("n trebuie sa fie intre 2 si 10.")
       return False
   if not (1 <= p <= 10**12):
       print("p trebuie sa fie intre 1 si 1.000.000.000.000.")
       return False
   return True


def puterea_lui_n(n: int, p: int):

   """
   Functia de rezolvare pentru exercitiul dat.
   Returneaza un string cu toate puterile lui n mai mici sau egale cu p, separate prin exact un spatiu.
   """
   puteri = []
   i = 0
   while n ** i <= p:
       puteri.append(n ** i)
       i += 1
   print(' '.join(map(str, puteri)))


if __name__ == '__main__':

   """
   Functia if __name__ care citeste datele de intrare, verifica validitatea lor si afiseaza rezultatul.
   """
   n, p = map(int, input().split())
   if validare_date(n, p):
       print("Date de intrare valide")
       puterea_lui_n(n, p)
   else:
       print("Date de intrare invalide")

</syntaxhighlight>