0348 - Afisare Puteri

From Bitnami MediaWiki
Revision as of 15:08, 15 May 2023 by Paul Ungur (talk | contribs)

Cerinţa:

Se dau două numere naturale nenule n și p. Afișați în ordine crescătoare puterile lui n mai mici sau egale cu p .

Date de intrare:

Programul citește de la tastatură numerele n și p .

Date de ieşire:

Programul afișează pe ecran, în ordine crescătoare, puterile lui n mai mici sau egale cu p , separate prin câte un spațiu.

Restricţii şi precizări:

2 ≤ n ≤ 10 1 ≤ p < 1.000.000.000

Exemplu:

Date de intrare 3 100

Date de ieșire 1 3 9 27 81

Rezolvare

<syntaxhighlight lang="python" line="1"> def validare(n, p):

   if not isinstance(n, int) or not isinstance(p, int):
       return False
   if n <= 1 or p <= 0 or p >= 1000000000:
       return False
   return True


def rezolvare(n, p):

   i = 0
   while n ** i <= p:
       print(n ** i, end=' ')
       i += 1


if __name__ == "__main__":

   n = int(input("Introduceti n: "))
   p = int(input("Introduceti p: "))
   if validare(n, p):
       rezolvare(n, p)
       print("Date de intrare valide")
   else:
       print("Date de intrare invalide")

</syntaxhighlight>

Explicatie cod:

Codul Python de mai sus definește două funcții: validare și rezolvare. Iată o explicație pentru fiecare dintre ele:

Funcția validare(n, p): Această funcție primește doi parametri, n și p, reprezentând două numere întregi. Verifică mai multe condiții pentru a valida datele introduse: Verifică dacă atât n cât și p sunt de tipul int. Dacă nu sunt, funcția returnează False, semnalând că datele sunt invalide. Verifică dacă n este mai mic sau egal cu 1 sau p este mai mic sau egal cu 0 sau mai mare sau egal cu 1.000.000.000. Dacă una dintre aceste condiții nu este îndeplinită, funcția returnează False, semnalând că datele sunt invalide. Dacă toate verificările sunt trecute fără a găsi probleme, funcția returnează True, semnalând că datele sunt valide. Funcția rezolvare(n, p): Această funcție primește doi parametri, n și p, reprezentând două numere întregi. Funcția calculează și afișează toate puterile lui n care sunt mai mici sau egale cu p. Într-un ciclu while, se verifică condiția n ** i <= p, unde i este un contor inițializat cu 0. În fiecare iterație, se afișează rezultatul n ** i și se incrementează i cu 1. Afișarea este realizată cu ajutorul funcției print, iar valorile sunt separate prin spațiu. În cadrul secțiunii if __name__ == "__main__": se realizează următoarele acțiuni:

Se citește de la tastatură două numere întregi n și p folosind funcția input(). Se apelează funcția validare(n, p) pentru a verifica validitatea datelor. Dacă datele sunt valide, se apelează funcția rezolvare(n, p) pentru a calcula și afișa rezultatul. Dacă datele nu sunt valide, se afișează mesajul "Date de intrare invalide". În cazul în care datele sunt valide, se afișează mesajul "Date de intrare valide" după ce funcția rezolvare(n, p) a afișat toate puterile lui n.