2699 - Puterile Lui N: Difference between revisions

From Bitnami MediaWiki
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 validate_input(n: int, p: int) -> bool:
def validare_date(n: int, p: int) -> bool:
     """
     """
     Functia de validare pentru input.
     Functia de validare pentru input.
Line 33: Line 33:




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




def main() -> None:
if __name__ == '__main__':
     """
     """
     Functia main care citeste datele de intrare, verifica validitatea lor si afiseaza rezultatul.
     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 validate_input(n, p):
     if validare_date(n, p):
         print(powers_of_n(n, p))
         print("Date de intrare valide")
 
        puterea_lui_n(n, p)
 
    else:
if __name__ == '__main__':
        print("Date de intrare invalide")
    main()
</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>