3349 - Putere1: Diferență între versiuni

De la Universitas MediaWiki
Fără descriere a modificării
Fără descriere a modificării
Linia 9: Linia 9:
*1 ⩽ '''n'''  ⩽ 2^31
*1 ⩽ '''n'''  ⩽ 2^31
*1 ⩽ '''p''' ⩽ 9
*1 ⩽ '''p''' ⩽ 9
== Exemplul 1==
==Exemplu==
=== Exemplul 1===
; Intrare
; Intrare
: 2
: 2
Linia 17: Linia 18:
: Datele introduse corespund restricțiilor impuse.
: Datele introduse corespund restricțiilor impuse.
: 24
: 24
== Exemplul 2 ==
=== Exemplul 2 ===
; Intrare
; Intrare
: 123456789
: 123456789
Linia 24: Linia 25:
; Ieșire
; Ieșire
: Datele introduse corespund restricțiilor impuse.
: Datele introduse corespund restricțiilor impuse.
: 521
: 949
== Rezolvare vers. 1 ==
==Rezolvare==
=== Rezolvare vers. 1 ===
<syntaxhighlight lang="python" line="1" start="1">
<syntaxhighlight lang="python" line="1" start="1">
def validare(b, n, p):
def validare(b, n, p):
     return b.isdigit() and 1 <= int(b) <= 1000000000  
     return b.isdigit() and 1 <= int(b) <= 1000000000 and n.isdigit() and 1 <= int(
    return n.isdigit() and 1 <= int(n) <= 2 ^ 31  
        n) <= 2 ** 31 and p.isdigit() and 1 <= int(p) <= 9
    return p.isdigit() and 1 <= int(p) <= 9




def putere(b, n, p):
def putere(b, n, p):
 
     result = str(b ** n)[-p:]
     b_str = str(b)
     print(int(result))
    last_p_digits = b_str[-p:]
     last_p_digits_int = int(last_p_digits)
    result = (b ** n) % (10 ** p)
 
    print("Numarul format din ultimele {p} cifre ale lui {b} la puterea {n} este {result}.")




if __name__ == '__main__':
if __name__ == '__main__':
 
     b = input("Introduceti numarul b: ")
     b = int(input("Introduceti numarul b: "))
     n = input("Introduceti puterea n: ")
     n = int(input("Introduceti puterea n: "))
     p = input("Introduceti numarul de cifre dorit: ")
     p = int(input("Introduceti numarul de cifre dorit: "))


if validare(b, n, p):
if validare(b, n, p):
     b, n, p = int(b), int(n), int(p)
     b, n, p = int(b), int(n), int(p)
     print("Datele introduse corespund restricțiilor impuse.")
     print("Datele introduse corespund restricțiilor impuse.")
     putere(n, b, p)
     putere(b, n, p)
else:
else:
     print("Datele introduse nu corespund restricțiilor impuse.")
     print("Datele introduse nu corespund restricțiilor impuse.")
</syntaxhighlight>
</syntaxhighlight>

Versiunea de la data 19 martie 2023 14:46

Cerință

Se dau numerele naturale b n p. Determinați numărul format din ultimele p cifre ale lui .

Date de intrare

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

Date de ieșire

Programul va afișa pe ecran numărul format din ultimele p cifre ale lui .

Restricții de precizări

  • 1 ⩽ b ⩽ 1000000000
  • 1 ⩽ n ⩽ 2^31
  • 1 ⩽ p ⩽ 9

Exemplu

Exemplul 1

Intrare
2
10
2
Ieșire
Datele introduse corespund restricțiilor impuse.
24

Exemplul 2

Intrare
123456789
5
3
Ieșire
Datele introduse corespund restricțiilor impuse.
949

Rezolvare

Rezolvare vers. 1

def validare(b, n, p):
    return b.isdigit() and 1 <= int(b) <= 1000000000 and n.isdigit() and 1 <= int(
        n) <= 2 ** 31 and p.isdigit() and 1 <= int(p) <= 9


def putere(b, n, p):
    result = str(b ** n)[-p:]
    print(int(result))


if __name__ == '__main__':
    b = input("Introduceti numarul b: ")
    n = input("Introduceti puterea n: ")
    p = input("Introduceti numarul de cifre dorit: ")

if validare(b, n, p):
    b, n, p = int(b), int(n), int(p)
    print("Datele introduse corespund restricțiilor impuse.")
    putere(b, n, p)
else:
    print("Datele introduse nu corespund restricțiilor impuse.")