Cod sursa(job #2021424)

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

using namespace std;

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

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

int calcul()
{
    while(p)
    {
        if(p%2==1)
        {
            sol=(sol*n)%MAX;
            p--;
        }
        else
        {
            p/=2;
            n=(n*n)%MAX;
        }
    }
    return sol;
}
int main()
{
    citire();
    calcul();
    cout<<sol;
    return 0;
}