Cod sursa(job #1344334)
Utilizator | Data | 16 februarie 2015 17:29:52 | |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.51 kb |
#include <stdio.h>
#include <math.h>
#define p 1999999973
unsigned long long a,b;
inline unsigned long powtt(unsigned long long a, unsigned long long b){
if(!a)
return 0;
if(!b)
return 1;
a%=p;
if(b%2==0)
return powtt(a*a,b/2);
return a*powtt(a*a,(b-1)/2);
}
int main(){
FILE*f=fopen("lgput.in","r");
fscanf(f,"%lld %lld",&a,&b);
fclose(f);
FILE*g=fopen("lgput.out","w");
fprintf(g,"%lld",powtt(a%p,b)%p);
fclose(g);
return 0;
}