Cod sursa(job #2021426)

Utilizator patricia.predaPatricia Preda patricia.preda Data 13 septembrie 2017 17:55:30
Problema Ridicare la putere in timp logaritmic Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.58 kb
#include <iostream>
#include <cstdio>

using namespace std;

int n,p,sol=1,MAX=1999999973;

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

long long calcul(long long n, long long p)
{
    while(p)
    {
        if(p%2==1)
        {
            sol=(sol*n)%MAX;
            p--;
        }
        else
        {
            p/=2;
            n=(n*n)%MAX;
        }
    }
    return sol;
}
int main()
{
    citire();
    printf("%lld", calcul(n,p));
    return 0;
}