Cod sursa(job #423137)

Utilizator mihaionlyMihai Jiplea mihaionly Data 23 martie 2010 15:45:35
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.44 kb
#include <stdio.h>
#include <string.h>
const int nmax = 10001; 
const int MOD = 1999999973;
long long pow(long long n, long long p)
 {
 long long rez=1;
 while(p)
  {
  if(p&1)//p este impar
   {
   rez*=n;
   rez%=MOD;
   }
  n*=n;
  n%=MOD;
  p/=2;
  }
 return rez;
 }
int main()
{
long long n, p;
freopen("lgput.in","r",stdin);
freopen("lgput.out","w",stdout);
scanf("%lld %lld", &n, &p);
printf("%lld\n", pow(n,p)); 
return 0;
}