Cod sursa(job #2663008)
| Utilizator | Data | 25 octombrie 2020 08:40:53 | |
|---|---|---|---|
| Problema | Ridicare la putere in timp logaritmic | Scor | 100 |
| Compilator | c-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.55 kb |
#include <stdio.h>
#define MOD 1999999973
int put( long long n, long long p ) {
int x, rasp;
if ( p == 0 )
return 1;
x = put( n, p / 2 );
rasp = (long long)x * x % MOD;
if ( p % 2 == 1 )
rasp = (long long)rasp * n % MOD;
return rasp;
}
int main() {
FILE *fin, *fout;
long long n, p;
fin = fopen( "lgput.in", "r" );
fscanf( fin, "%lld%lld", &n, &p );
fclose( fin );
fout = fopen( "lgput.out", "w" );
fprintf( fout, "%d", put( n, p ) );
fclose( fin );
return 0;
}
