Cod sursa(job #793423)
Utilizator | Data | 2 octombrie 2012 21:35:44 | |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.38 kb |
#include <cstdio>
int m = 1999999973;
int N, p;
int main () {
freopen("lgput.in", "rt", stdin);
freopen("lgput.out", "wt", stdout);
scanf("%d %d", &N, &p);
long long a = N, sol = 1;
for (int i=1; i<=p; i<<=1) {
if ( (i&p) > 0 )
sol = (sol * a) % m;
a = (a*a) % m;
}
printf("%lld", sol);
return 0;
}