Cod sursa(job #2021419)

Utilizator cristii2000cristiiPanaite Cristian cristii2000cristii Data 13 septembrie 2017 17:46:22
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.54 kb
#define MOD 1999999973
#include <cstdio>

using namespace std;

long long n, p;
long long r=1;

long long ridicare(long long n, long long p)
{
    while(p)
    {
        if(p%2==1)
        {
            r = (r*n) % MOD;
            p--;
        }
        else
        {
            p/=2;
            n = (n*n) % MOD;
        }
    }
    return r;
}

int main()
{

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