Cod sursa(job #1464064)

Utilizator SolcanMihaiSolcan Mihai Andrei SolcanMihai Data 22 iulie 2015 11:19:59
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.59 kb
#include <cstdio>
#include <cstring>
#include <cstdlib>
#define MOD 1999999973

using namespace std;

int px = 1;

long solve(long x, long p)
{
    if(p == 0)
    {
        return 1;
    }
    else
    {
        if(p % 2 == 0)
        {
            return solve((x * x) % MOD, p / 2);
        }

        return (solve(x, p - 1) * (x % MOD)) % MOD;

    }
}

int main()
{
    freopen("lgput.in", "r", stdin);
    freopen("lgput.out", "w", stdout);

    long x, p, prod;

    scanf("%i %i", &x, &p);

    prod = solve(x, p);

    printf("%i", prod);

    return 0;
}