Cod sursa(job #170499)
| Utilizator | Data | 2 aprilie 2008 20:35:42 | |
|---|---|---|---|
| Problema | Ridicare la putere in timp logaritmic | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.45 kb |
// http://infoarena.ro/problema/lgput
#include <stdio.h>
#include <math.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", pow( (double)N, P ) );
return 0;
}