2699 - Puterile Lui N
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>