Cod sursa(job #1043520)
Utilizator | Data | 28 noiembrie 2013 18:14:26 | |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.41 kb |
#include <stdio.h>
#define MOD 1999999973
using namespace std;
long long N, P, SOL = 1, i;
int main(){
freopen("lgput.in", "r", stdin);
freopen("lgput.out", "w", stdout);
scanf("%d%d", &N, &P);
for(i = 0; (1 << i) <= P; i++){
if( ((1 << i) & P) > 0){
SOL = (SOL * N) % MOD;
}
N = (N * N) % MOD;
}
printf("%d ", SOL);
}