Cod sursa(job #2303932)

Utilizator Salamandra01Felmeri Zsolt Salamandra01 Data 17 decembrie 2018 11:30:26
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.48 kb
#include <iostream>
#include <fstream>

#define k 1999999973

using namespace std;

long long int pow(long long n, long long p)
{
    if(p == 0){
        return 1;
    }
    if(p % 2 == 1){
        return (n * pow(n*n, p/2)) % k;
    }
    return pow(n*n, p/2) % k;
}

int main()
{
    freopen("lgput.in", "r", stdin);
    freopen("lgput.out", "w", stdout);
    long long n, p;
    scanf("%lld%lld", &n, &p);

    printf("%d\n", pow(n, p));

    return 0;
}