2699 - Puterile Lui N: Difference between revisions
Paul Ungur (talk | contribs) |
Paul Ungur (talk | contribs) No edit summary |
||
Line 19: | Line 19: | ||
==Rezolvare== | ==Rezolvare== | ||
<syntaxhighlight lang="python" line="1"> | <syntaxhighlight lang="python" line="1"> | ||
def | def validare_date(n: int, p: int) -> bool: | ||
""" | """ | ||
Functia de validare pentru input. | Functia de validare pentru input. | ||
Line 33: | Line 33: | ||
def | def puterea_lui_n(n: int, p: int): | ||
""" | """ | ||
Functia de rezolvare pentru exercitiul dat. | 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. | Returneaza un string cu toate puterile lui n mai mici sau egale cu p, separate prin exact un spatiu. | ||
""" | """ | ||
puteri = [] | |||
i = 0 | i = 0 | ||
while n ** i <= p: | while n ** i <= p: | ||
puteri.append(n ** i) | |||
i += 1 | i += 1 | ||
print(' '.join(map(str, puteri))) | |||
if __name__ == '__main__': | |||
""" | """ | ||
Functia | Functia if __name__ care citeste datele de intrare, verifica validitatea lor si afiseaza rezultatul. | ||
""" | """ | ||
n, p = map(int, input().split()) | n, p = map(int, input().split()) | ||
if | if validare_date(n, p): | ||
print( | print("Date de intrare valide") | ||
puterea_lui_n(n, p) | |||
else: | |||
print("Date de intrare invalide") | |||
</syntaxhighlight> | </syntaxhighlight> |
Revision as of 15:57, 26 April 2023
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>