Cod sursa(job #631596)
Utilizator | Stefan Lache StefanLache | Data | 8 noiembrie 2011 20:42:37 |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 10 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.41 kb |
#include<iostream>
#include<stdio.h>
#include<math.h>
using namespace std;
long long calc(int i,int j)
{
if(j==0)
return 1;
if(j==1)
return i;
if(j%2==1)
return i*calc(i,(j-1)/2)*calc(i,(j-1)/2);
return calc(i,j/2)*calc(i,j/2);
}
int main()
{
freopen("lgput.in","r",stdin);
freopen("lgput.out","w",stdout);
long long m=1999999973,i,j;
scanf("%d%d",&i,&j);
cout<<calc(i,j)%m;
return 0;
}