2699 - Puterile Lui N: Difference between revisions
Paul Ungur (talk | contribs) |
Paul Ungur (talk | contribs) |
||
Line 19: | Line 19: | ||
==Rezolvare== | ==Rezolvare== | ||
<syntaxhighlight lang="python" line="1"> | <syntaxhighlight lang="python" line="1"> | ||
n, p | 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 | |||
while | 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> | </syntaxhighlight> |
Revision as of 15:52, 24 March 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 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>