Cod sursa(job #148774)

Utilizator alexeiIacob Radu alexei Data 4 martie 2008 20:16:05
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.54 kb
#include<stdio.h>
//sol intuitiva
unsigned int m=1999999973; 

long long putere(long long a,long long b)
{
     if(b == 1)
     return a;
     else
         if( b%2 )
             return ((((putere(a,b/2))%m * (putere(a,b/2))%m)%m)*a)%m;
         else
             return ((putere(a,b/2)%m) * (putere(a,b/2)%m)) %m; 
             
}

int main()
{
 freopen("lgput.in","r",stdin);
 freopen("lgput.out","w",stdout);
 
 long long a,b;
 
 scanf("%lld%lld",&a,&b);
 printf("%lld",putere(a,b)%m);    
    
    
    return 0;
}