Cod sursa(job #1045989)

Utilizator tavi.belu1994FMI Belu Andrei Octavian tavi.belu1994 Data 2 decembrie 2013 15:53:22
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.6 kb
#include <iostream>
#include <cstdio>
FILE *f,*g;
using namespace std;

long mod = 1999999973;

long long lgput(long long N, long long P)
{
    if (P == 0) return 1;
    if (P % 2 == 0)
    {
        long long put;
        put = lgput(N, P / 2) % mod;
        put = (put * put) % mod;
        return put % mod;
    }
    else
        return ((N * lgput(N, P - 1)) % mod);
}

int main()
{
    f = fopen("lgput.in","r");
    g = fopen("lgput.out","w");
    long long N,P;
    fscanf(f,"%lld%lld",&N,&P);
    fprintf(g,"%lld",lgput(N,P));
    fclose(f);
    fclose(g);
    return 0;
}