# PBinfo #140 – putere – Rezolvare C++

Sursa: Codul lui Andrei
Limbaj: C++
Autor rezolvare: deivid

## Enunț

La ora de matematică Georgică a învăţat o nouă operaţie: ridicarea la putere. În timpul orei de informatică aprofundează această noţiune considerând două numere naturale m şi n, cu acelaşi număr de cifre şi calculând:

a) puterea p =  ab  , unde a este ultima cifră a lui m, iar b este ultima cifră a lui n;
b) suma s a tuturor puterilor de forma xy, unde x şi y sunt cifre din m, respectiv n de pe aceeaşi poziţie. De exemplu pentru m=624 şi n=253, se va calcula s= 43 + 25 + 62  şi se obţine s=132.

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.

## Cod sursă C++

```cpp
#include <fstream>
#include <cmath>
using namespace std;
ifstream fin("putere.in");
ofstream fout("putere.out");
int main()
{
    int p , m , n , x , y , a , b;
    long long s = 0;
    fin >> m >> n;
    a = m % 10;
    b = n % 10;
    if(a == 0 && b == 0)
        p = 0;
    else
        p = pow((double)a,b);
    fout << p << endl;
    while(m != 0 && n != 0)
    {
        x = m % 10;
        y = n % 10;
        s = s + pow((double)x,y);
        m = m / 10;
        n = n / 10;
    }
    fout << s;
    fin.close();
    fout.close();
    return 0;
}
```

## Resurse

- [Pagina originală](https://codulluiandrei.ro/rezolvari/pbinfo/140)
- [Sursa C++](https://codulluiandrei.ro/rezolvari/pbinfo/140/cod.cpp)
- [Sursa pe GitHub](https://raw.githubusercontent.com/codulluiandrei/pbinfo/main/pbinfo-140/main.cpp)
- [Cursuri de informatică pentru BAC](https://codulluiandrei.ro/academia/info-curs/pachet-cpp/)
