Cod sursa(job #935237)

Utilizator George515600Bejan George George515600 Data 2 aprilie 2013 13:30:49
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator c Status done
Runda Arhiva educationala Marime 0.47 kb
#include <stdio.h>
#include <stdlib.h>

#define MOD 1999999973

long long square(long long n,int p)
{
    if (p == 1) return n;
    if (!(n % 2)) return square(n*n%MOD,p/2)%MOD;
    else return n*square(n*n%MOD, (p-1)/2)%MOD;
}

int main()
{
    FILE *f = fopen("lgput.in","r");
    FILE *g = fopen("lgput.out","w");

    long long sol;
    int n, p;
    fscanf(f,"%d %d", &n, &p);
    sol = square(n,p);
    fprintf(g,"%lld", sol);

    fclose(f);
    fclose(g);

    return 0;
}