Cod sursa(job #935240)

Utilizator George515600Bejan George George515600 Data 2 aprilie 2013 13:41:43
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator c Status done
Runda Arhiva educationala Marime 0.51 kb


#include <stdio.h>
#include <stdlib.h>

const long long MOD = 1999999973;

long long square(long long n,long long p)
{
    if (p == 1) return n;
    if (p % 2 == 0) return square(n*n%MOD,p/2)%MOD;
    if (p % 2 == 1) 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;
    long long n, p;
    fscanf(f,"%lld %lld", &n, &p);
    sol = square(n,p);
    fprintf(g,"%lld", sol);

    fclose(f);
    fclose(g);

    return 0;
}