Cod sursa(job #903638)

Utilizator gabrielinelusGabriel-Robert Inelus gabrielinelus Data 1 martie 2013 23:53:21
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.45 kb
#include <cstdio>
FILE *f=fopen("lgput.in","r");
FILE *g=fopen("lgput.out","w");
#define mod 1999999973
long long r=1;
long long putere(long long a,long long b)
{
    long long x=a;
    if(b==0)return 1;
    while(b>1)
    if(b%2==0)
        {a=(a*a)%mod;b/=2;}
    else
        {r*=a;b--;r%=mod;}
    return a;
}

int main()
{
    long long a,b;
    fscanf(f,"%lld%lld",&a,&b);
    fprintf(g,"%lld",(putere(a,b)*r)%mod);
    return 0;
}