Cod sursa(job #443150)

Utilizator ClasianMunteanu Petre Clasian Data 16 aprilie 2010 09:28:30
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.38 kb
#include<fstream.h>
#define x 1999999973 
ifstream f("lgput.in");
ofstream g("lgput.out");
long long n,p;
long long put(long long p,long long n)
{ if(n==0)return 1;
  if(n==1)return p;
  if(n%2)return p*(put(p,(n-1)>>1)%x)*(put(p,(n-1)>>1)%x)%x;
  return (put(p,(n)>>1)%x)*(put(p,(n)>>1)%x)%x;
}
int main()
{ f>>p>>n;
  g<<put(p,n);
  f.close();
  g.close();
  return 0;
}