2699 - Puterile Lui N: Difference between revisions

From Bitnami MediaWiki
Paul Ungur (talk | contribs)
Tag: visualeditor
Paul Ungur (talk | contribs)
Tag: visualeditor
Line 19: Line 19:
==Rezolvare==
==Rezolvare==
<syntaxhighlight lang="python" line="1">
<syntaxhighlight lang="python" line="1">
n, p = map(int, input("Introduceti numerele n si p: ").split())
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


power = 1
 
while power <= p:
def powers_of_n(n: int, p: int) -> str:
     print(power, end=" ")
    """
     power *= n
    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>