Cod sursa(job #1605301)
Utilizator | Paul Codrea paulcodrea99 | Data | 18 februarie 2016 21:40:56 |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 10 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.49 kb |
#include <iostream>
#include <stdio.h>
#define mod 1999999973
using namespace std;
long long N,P;
long long putere(long long N, long long P)
{
if(P==0)
return 1;
if((P & 1) == 0)
return (putere(N*N, P/2))%mod;
else return ((putere(N, P-1))%mod * N)%mod;
}
int main()
{
freopen("lgput.in","r", stdin);
freopen("lgput.out","w", stdout);
scanf("%lld %lld", &N, &P);
printf("%lld\n", putere(N,P));
return 0;
}