0348 - Afisare Puteri: Diferență între versiuni

De la Universitas MediaWiki
Linia 22: Linia 22:
==Rezolvare==
==Rezolvare==
<syntaxhighlight lang="python" line="1">
<syntaxhighlight lang="python" line="1">
n = int(input("Introduceți n: "))
def validare(n, p):
p = int(input("Introduceți 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


putere = 1
def rezolvare(n, p):
while putere <= p:
    i = 0
    print(putere, end=" ")
    while n ** i <= p:
     putere *= n
        print(n ** i, end=' ')
        i += 1
 
def main():
    n = int(input("Introduceti n: "))
     p = int(input("Introduceti p: "))
    if validare(n, p):
        rezolvare(n, p)
    else:
        print("Date de intrare invalide")
 
if __name__ == "__main__":
    main()
</syntaxhighlight>
</syntaxhighlight>

Versiunea de la data 24 martie 2023 15:24

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

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

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

if __name__ == "__main__":
    main()