Cod sursa(job #1284886)
Utilizator | Data | 6 decembrie 2014 21:57:47 | |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 10 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.36 kb |
#include<fstream>
using namespace std;
ifstream cin("lgput.in");
ofstream cout("lgput.out");
int n,p;
int put(int n,int p)
{
if(p<0)return put(1/n,0-p);
if(!p)return 1;
if(p==1)return n;
if(n%2==0)return put(n*n,p/2);
if(n%2!=0)return n*put(n*n,(p-1)/2);
}
int main(void)
{
cin>>n>>p;
cout<<put(n,p)%1999999973;
}