2699 - Puterile Lui N

From Bitnami MediaWiki

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 validate_input(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 powers_of_n(n: int, p: int) -> str:

   """
   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.
   """
   powers = []
   i = 0
   while n ** i <= p:
       powers.append(n ** i)
       i += 1
   return ' '.join(map(str, powers))


def main() -> None:

   """
   Functia main care citeste datele de intrare, verifica validitatea lor si afiseaza rezultatul.
   """
   n, p = map(int, input().split())
   if validate_input(n, p):
       print(powers_of_n(n, p))


if __name__ == '__main__':

   main()

</syntaxhighlight>