Cod sursa(job #323073)

Utilizator MKLOLDragos Ristache MKLOL Data 10 iunie 2009 17:24:52
Problema Ridicare la putere in timp logaritmic Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.45 kb
#include<stdio.h>
long long a,b,c=1999999973,N;
long long modulo(long long m,long long n)
{
long long x;
if(n==0)
return 1;
if(n%2==0)
{
x=modulo(m,n/2)%c;
return (x*x)%c;
}
else if(n%2==1)
{
x=modulo(m,(n-1)/2)%c;
return (((x%c)*(x%c)*m)%c);
}
}
int main()
{   freopen("modulo.in","r",stdin);
   freopen("modulo.out","w",stdout);
    long long o;
    scanf("%lld%lld",&a,&b);
    a=a%c;
    o=modulo(a,b);
    printf("%lld",o);

}