Cod sursa(job #198868)
| Utilizator | Data | 15 iulie 2008 16:01:35 | |
|---|---|---|---|
| Problema | Ridicare la putere in timp logaritmic | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.35 kb |
#include <stdio.h>
#define m 1999999973
long long sol(long long n,long long p){
if(p==0) return 1;
if(p%2) return (n%m)*sol((n%m)*(n%m)%m,p/2)%m;
return sol((n%m)*(n%m)%m,p/2)%m;
}
int main(){
long long n,p;
freopen("lgput.in","r",stdin);
freopen("lgput.out","w",stdout);
scanf("%lld%lld",&n,&p);
printf("%lld",sol(n%m,p));
return 0;
}
