Cod sursa(job #1989985)
Utilizator | Data | 9 iunie 2017 19:40:40 | |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 10 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.31 kb |
#include <fstream>
using namespace std;
ifstream fi("lgput.in");
ofstream fo("lgput.out");
const int M = 1999999973;
int n,p,sol=1,i,a;
int main()
{ fi>>n>>p;
while (p)
{
if(p&1) sol=(sol*n)%M; // p este impar
n=(n*n)%M;
p>>=1; //(sau p=p/2)
}
fo<<sol;
}