0140 - Putere: Diferență între versiuni
De la Universitas MediaWiki
(Pagină nouă: ==Cerinţă== Scrieţi un program, care pentru două numere naturale date m şi n determină: a) puterea p definită în enunţ; b) suma s definită în enunţ. ==Date de intrare== Fişierul de intrare putere.in conţine pe prima linie numerele m şi n, separate între ele printr-un spaţiu. ==Date de ieşire== Fişierul de ieşire putere.out va conţine, pe prima linie p şi pe a doua linie s. ==Restricţii şi precizări== 0 <m,n< 2000000001 Toate cifrele lui n sunt nen...) |
Fără descriere a modificării |
||
Linia 1: | Linia 1: | ||
Sursa: [https://www.pbinfo.ro/probleme/140/putere] | |||
==Cerinţă== | ==Cerinţă== | ||
Scrieţi un program, care pentru două numere naturale date m şi n determină: | Scrieţi un program, care pentru două numere naturale date m şi n determină: |
Versiunea curentă din 20 mai 2023 13:02
Sursa: [1]
Cerinţă
Scrieţi un program, care pentru două numere naturale date m şi n determină:
a) puterea p definită în enunţ; b) suma s definită în enunţ.
Date de intrare
Fişierul de intrare putere.in conţine pe prima linie numerele m şi n, separate între ele printr-un spaţiu.
Date de ieşire
Fişierul de ieşire putere.out va conţine, pe prima linie p şi pe a doua linie s.
Restricţii şi precizări
0 <m,n< 2000000001 Toate cifrele lui n sunt nenule. m şi n au acelaşi număr de cifre.
Exemplu
putere.in
624 253 putere.out
64 132
Explicaţie
m=624, n=253. p= 43 , adică p=64 s= 43 + 25 + 62 , adică s=132.
Încărcare soluție
with open('putere.in', 'r') as f_in, open('putere.out', 'w') as f_out:
m, n = map(int, f_in.readline().split())
p = int(str(m)[-1])
s = p
while m > 0:
p = (p * n) % 10
s += p
m //= 10
n = int(str(n * n)[-len(str(m)):])
f_out.write(str(p) + '\n')
f_out.write(str(s) + '\n')