Mai intai trebuie sa te autentifici.
Cod sursa(job #641237)
| Utilizator | Data | 27 noiembrie 2011 16:52:42 | |
|---|---|---|---|
| Problema | Ridicare la putere in timp logaritmic | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.55 kb |
#include<stdio.h>
#define q 1999999973
long power(long x ,long n){
long buff;
long long result;
if(n == 0)
return 1;
buff = power(x, n/2)%q;
result = 1;
result = result * (long long )buff * (long long ) buff;
result = result % q;
if(n%2)
return (long )(((long long)x * result)%q);
else
return (long ) result;
}
int main(){
long long N, P;
freopen("lgput.in","r",stdin);
freopen("lgput.out", "w", stdout);
scanf("%lld %lld",&N, &P);
long long value = power(N, P);
printf("%lld\n", value);
return 0;
}
