Cod sursa(job #183348)
| Utilizator | Data | 21 aprilie 2008 23:00:11 | |
|---|---|---|---|
| Problema | Ridicare la putere in timp logaritmic | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.43 kb |
#ifdef WIN32
#define _CRT_SECURE_NO_WARNINGS
#endif
#include <cstdio>
#define MOD 1999999973.
int main()
{
freopen("lgput.in", "rt", stdin);
freopen("lgput.out", "wt", stdout);
int n, p;
scanf("%d%d", &n, &p);
long long sol = 1, r = n;
for (int i = 0; p; i++)
{
if (p & (1 << i))
{
sol = (sol * r) % MOD;
p -= 1 << i;
}
r = (r * r) % MOD;
}
printf("%lld\n", sol);
return 0;
}
