Cod sursa(job #168362)

Utilizator firewizardLucian Dobre firewizard Data 31 martie 2008 08:28:38
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.55 kb
#include <stdio.h>      
     
unsigned long n,p,m;   
     
long power(long long base,long p,long mod){      
     long rez=1;      
     while (p>0){      
           if ((long)(p&1)==1)rez=(rez*base)%mod;      
           base=(base*base)%mod;      
           p>>=1;      
     }      
return rez;      
}      
     
int main(){      
    freopen("lgput.in","r",stdin);   
    freopen("lgput.out","w",stdout);   
          
    scanf("%ld %ld %ld",&n,&p);   
    printf("%ld\n",power(n,p,1999999973));   
     
return 0;      
}