Cod sursa(job #2433904)

Utilizator HelloWorldBogdan Rizescu HelloWorld Data 29 iunie 2019 17:58:09
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.39 kb
#include <cstdio>
using namespace std;
#define M 1999999973
#define ll long long
ll n,p;
ll pow(ll x,ll n)
{
    if (n==1) return x%M;
    if (n%2) return ((x%M)*(pow(((x%M)*(x%M))%M,(n-1)/2)%M))%M;
    return pow(((x%M)*(x%M))%M,n/2)%M;
}
int main()
{
    freopen("lgput.in","r",stdin);
    freopen("lgput.out","w",stdout);
    scanf("%ld%ld",&n,&p);
    printf("%ld",pow(n,p)%M);
}