Cod sursa(job #1554413)

Utilizator cristina-criCristina cristina-cri Data 21 decembrie 2015 12:31:42
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.55 kb
#include <cstdio>
#define mod 1999999973
using namespace std;

long long p,r=1,n;

int putere(int r,int p,int n)
{
    while(p>1)
    {
        if(p%2 == 1)
        {
            r=r*(n%mod);
            p--;
        }
        else
        {
            n=n*(n%mod);
            p=p/2;
        }
    }
    if(r==1)
        r=r*(n%mod);
    return r;
}

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

    scanf("%lld%lld",&n,&p);
    r=putere(r,p,n);
    printf("%lld",r);
    return 0;
}