Cod sursa(job #1600658)
| Utilizator | Data | 15 februarie 2016 11:53:16 | |
|---|---|---|---|
| Problema | Ridicare la putere in timp logaritmic | Scor | 10 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.45 kb |
#include <fstream>
#define MOD 1999999973
using namespace std;
int n,p;
long long sol(int,int);
int main(){
freopen("lgput.in","r",stdin);
scanf("%d%d",&n,&p);
freopen("lgput.out","w",stdout);
printf("%lld",sol(n,p));
}
long long sol(int n,int p){
if (p==0){
return 1;
}
if (p%2==0){
return sol((n%MOD*n%MOD)%MOD,p/2)%MOD;
}
return (n%MOD*sol((n%MOD*n%MOD)%MOD,p/2)%MOD)%MOD;
}
