Cod sursa(job #1989986)
Utilizator | Data | 9 iunie 2017 19:42:13 | |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.32 kb |
#include <fstream>
using namespace std;
ifstream fi("lgput.in");
ofstream fo("lgput.out");
const int M = 1999999973;
long long 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;
}