Cod sursa(job #833507)

Utilizator marialivia16Chiorean Maria Livia marialivia16 Data 12 decembrie 2012 17:26:54
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.59 kb
#include<cstdio>
#define nr 1999999973
#define ll unsigned long long int
ll putere(ll &x,ll &p)
{
    ll n=1;
    while(p>0)
    {
                   if(p%2==1)
                   {
                               n=(n*x)%nr;
                               p--;
                   }
                   x=x*x;
                   x%=nr;
                   p/=2;
    }
    return n;
}
int main()
{
    FILE *f=fopen("lgput.in","r"),*g=fopen("lgput.out","w");
    ll x,p;
    fscanf(f,"%lld%lld",&x,&p);
    fclose(f);
    fprintf(g,"%lld",putere(x,p));
    fclose(g);
    return 0;
}