Cod sursa(job #1874489)
Utilizator | Data | 10 februarie 2017 01:05:43 | |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 10 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.47 kb |
#include <fstream>
#define md 1999999973
using namespace std;
ifstream fi ("lgput.in");
ofstream fo ("lgput.out");
long long n, p, a = 1, s, cn;
int main ()
{
fi >> n >> p;
cn = n;
while (a*2 < p || a*2 == p)
{
n = (n*n)%md;
a*=2;
}
if (p - a > 0)
{
p-=a;
s*=n;
s%=md;
cn = n;
a = 1;
}
else
{
fo << n;
return 0;
}
return 0;
}