Cod sursa(job #1933028)

Utilizator RaduToporanRadu Toporan RaduToporan Data 20 martie 2017 12:37:23
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.56 kb
#include <cstdio>

const long long impartitor=1999999973;
long long n,p;

long long ridicare(long long a, long long n)
{
    if (n==0) return 1;
        else if (n==1) return a%impartitor;
        else
        {
            long long t=ridicare(a,n/2)%impartitor;
            if (n%2==1) return t*t%impartitor*a%impartitor;
                else return t*t%impartitor;
        }
}

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;
}