Cod sursa(job #156610)

Utilizator DorinOltean Dorin Dorin Data 12 martie 2008 17:33:37
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.61 kb
# include <stdio.h>

using namespace std;

# define input "lgput.in"
# define output "lgput.out"

# define modulo 1999999973
# define max 100001

long long n,p,res;

void executa()
{
    while(p)
    {
            if(p%2)
            {
                res*=n;
                res%=modulo;
            }
            p/=2;
            n*=n;
            n%=modulo;
    }
}

int main()
{
    freopen(input, "r", stdin);
    freopen(output, "w", stdout);
    
    scanf("%lld%lld",&n,&p);
    
    n%=modulo;
    res = 1;    
    executa();
    
    printf("%lld",res);
    
    return 0;
}