Cod sursa(job #377267)
| Utilizator | Data | 23 decembrie 2009 20:41:35 | |
|---|---|---|---|
| Problema | Ridicare la putere in timp logaritmic | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.48 kb |
#include<iostream>
#include<string>
using namespace std;
#define LL long long
#define MOD 1999999973
int N,P;
inline int pw(int a,int b)
{
if(b==0) return 1;
int ab2=pw(a,b/2);
int ans=((LL)ab2*ab2)%MOD;
if(b%2) ans=((LL)ans*a)%MOD;
return ans;
}
int main()
{
freopen("lgput.in","r",stdin);
freopen("lgput.out","w",stdout);
scanf("%d %d",&N,&P);
printf("%d",pw(N,P));
return 0;
}
