Cod sursa(job #370031)
Utilizator | Data | 30 noiembrie 2009 00:08:02 | |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 10 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.35 kb |
#include<fstream.h>
#include<math.h>
long a;
long put(int x,int n)
{
if(!n)return 1;
else
if(n%2) return (x*(put(x,n-1)%a))%a;
else return (put(x,(n>>1))%a)*(put(x,(n>>1))%a);
}
int main()
{
long n,p;
ifstream f("lgput.in");
ofstream g("lgput.out");
f>>n>>p;
a=1999999973;
n%=a;
p%=(a-1);
g<<put(n,p);
return 0;
}