Cod sursa(job #1786242)

Utilizator RaduToporanRadu Toporan RaduToporan Data 22 octombrie 2016 17:13:44
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.5 kb
#include <cstdio>

long long n,p;

long long ridicare(long long n, long long putere)
{
    if (putere==0) return 1;
    else if (putere==1) return n%1999999973;
    else if (putere%2==0)
            return ridicare(n,putere/2)*ridicare(n,putere/2)%1999999973;
        else return (ridicare(n,putere-1)*n)%1999999973;
}

int main()
{
    freopen("lgput.in","r",stdin);
    freopen("lgput.out","w",stdout);
    scanf("%lld%lld",&n,&p);
    printf("%lld\n",ridicare(n,p));
    return 0;
}