Cod sursa(job #1600693)

Utilizator robert.stefanRobert Stefan robert.stefan Data 15 februarie 2016 12:27:42
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator c Status done
Runda Arhiva educationala Marime 0.63 kb
#include <stdio.h>
#include <stdlib.h>

#define IN "lgput.in"
#define OUT "lgput.out"
#define MOD 1999999973

long long exponentiere (long long n, long long p){
    if (p == 0)
        return 1;

    if (p % 2 == 0)
        return (exponentiere (n * n % MOD, p / 2)) % MOD;
    else
        return n * ((exponentiere (n * n % MOD, p / 2)) % MOD) % MOD;


}

int main(){
    FILE *fin, *fout;
    fin = fopen (IN, "r");
    fout = fopen (OUT, "w");

    long long n, p;

    fscanf (fin, "%lld%lld", &n, &p);
    fprintf(fout, "%lld\n", exponentiere (n, p));

    fclose(fin);
    fclose(fout);
    return 0;
}