Cod sursa(job #875102)
Utilizator | Data | 9 februarie 2013 18:28:24 | |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 100 |
Compilator | c | Status | done |
Runda | Arhiva educationala | Marime | 0.32 kb |
#include<stdio.h>
#include<string.h>
const int m=1999999973;
int main(){
long long sg,p,n;
FILE *fin=fopen("lgput.in","r"),*fout=fopen("lgput.out","w");
fscanf(fin,"%lld%lld",&n,&p);
sg=1;
while(p>1){
if(p&1) {
sg*=n;
sg%=m;
p--;
}
else{
n*=n;
n%=m;
p/=2;
}
}
fprintf(fout,"%lld",(sg*n)%m);
return 0;
}