Cod sursa(job #147533)
Utilizator | Data | 3 martie 2008 09:36:44 | |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.37 kb |
#include<stdio.h>
#define M 1999999973
long long put(long long x,long long n){
long long r=1;
while(n>0){
if(n&1){
r=(r*x)%M;
n=n-1;
}
x=(x*x)%M;
n>>=1;
}
return r;
}
int main(){
long long p,n,x;
freopen("lgput.in","r",stdin);
freopen("lgput.out","w",stdout);
scanf("%lld %lld",&n,&p);
x=put(n,p);
printf("%lld",x);
return 0;
}