Cod sursa(job #1269197)

Utilizator fluture.godlikeGafton Mihnea Alexandru fluture.godlike Data 21 noiembrie 2014 23:38:42
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.62 kb
#include <stdio.h>
unsigned long n, p;

const long long MOD = 1999999973;

unsigned long power(unsigned long a, unsigned long b)
{
         if(b == 0) return 1;
         if(b == 1) return a;
         unsigned long temp = power(a, b/2)%MOD;
         
         return ((((long long)temp * temp) % MOD) * power(a, b%2)) % MOD;
         //return (temp * temp * power(a, b%2))%MOD;
}
FILE *fin, *fout;
int main()
{
    fin = fopen("lgput.in", "r");
    fout = fopen("lgput.out", "w");
    fscanf(fin, "%ld%ld", &n, &p);
    fprintf(fout, "%ld", power(n, p)%MOD);
    fclose(fin);
    fclose(fout);
    return 0;
}