Cod sursa(job #900945)

Utilizator Alex_Merceraaaaaaa Alex_Mercer Data 28 februarie 2013 22:57:52
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.47 kb
#include <cstdio>

#define mod 1999999973

using namespace std;

long long n,p,r;

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

    scanf ("%lld %lld",&n,&p);
    r=1;

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

    printf ("%lld\n",(n*r)%mod);

    return 0;
}