Cod sursa(job #742454)

Utilizator BugirosRobert Bugiros Data 30 aprilie 2012 12:13:34
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.58 kb
#include <cstdio>
using namespace std;

const int MODULO = 1999999973;

long long n,p;

void citire()
{
    freopen("lgput.in","r",stdin);
    freopen("lgput.out","w",stdout);
    scanf ("%lld%lld",&n,&p);
}

long long putere(long long a,long long b)
{
    long long nr;
    if (b == 0)
        return 1;
    if (b % 2 == 1)
        return (a * putere(a,b - 1)) % MODULO;
    else
    {
        nr = putere(a,b / 2) % MODULO;
        return (nr * nr) % MODULO;
    }
    return 0;
}

int main()
{
    citire();
    printf ("%lld",putere(n,p));
    return 0;
}