Mai intai trebuie sa te autentifici.
Cod sursa(job #1503740)
Utilizator | Data | 16 octombrie 2015 20:43:32 | |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.62 kb |
#include <cstdio>
using namespace std;
FILE *f = fopen ( "lgput.in" , "r" ) , *g = fopen ( "lgput.out" , "w" );
const long long MOD = 1999999973;
long long N , P;
long long toPower ( long long x , long long exp )
{
long long result = 1;
while ( exp )
{
if ( exp % 2 == 1 )
{
exp --;
result = ( result * x ) % MOD;
}
x = ( x * x ) % MOD;
exp /= 2;
}
return result;
}
int main()
{
//read
fscanf ( f , "%I64d %I64d" , &N , &P );
//print
fprintf ( g , "%I64d\n" , toPower ( N , P ) );
return 0;
}