Cod sursa(job #181429)
Utilizator | Data | 18 aprilie 2008 12:31:13 | |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 100 |
Compilator | c | Status | done |
Runda | Arhiva educationala | Marime | 0.36 kb |
#include <stdio.h>
#define MOD 1999999973ll
int main() {
long long N, P, t, r, mask;
freopen( "lgput.in", "r", stdin );
freopen( "lgput.out", "w", stdout );
scanf( "%lld%lld", &N, &P );
for( t = N, r = mask = 1; mask <= P; mask <<= 1, t = (t*t) % MOD )
if( mask & P )
r = (r * t) % MOD;
printf( "%lld\n", r );
return 0;
}