Cod sursa(job #165453)
| Utilizator | Data | 25 martie 2008 23:19:07 | |
|---|---|---|---|
| Problema | Ridicare la putere in timp logaritmic | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.46 kb |
// http://infoarena.ro/problema/lgput
#include <stdio.h>
long mypow( int n, int p )
{
if( p == 1 )
return n;
if( p == 0 )
return 1;
long long nr;
nr = mypow( n, p/2 );
nr = nr * nr %1999999973;
if( p % 2 == 1 )
nr = nr * n %1999999973;
return nr;
}
int main()
{
int N, P;
freopen( "lgput.in", "r", stdin );
freopen( "lgput.out", "w", stdout );
scanf( "%d %d", &N, &P );
printf("%ld", mypow( N, P ) );
return 0;
}