Cod sursa(job #1344334)

Utilizator Balescu_OvidiuBalescu Ovidiu-Gheorghe Balescu_Ovidiu 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;
}