Cod sursa(job #2120466)

Utilizator ioana.jianuIoana Jianu ioana.jianu Data 2 februarie 2018 14:56:04
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.59 kb
#include <iostream>
#include <stdio.h>
using namespace std;

long long lgput (long long n, long long p) {
    int mod = 1999999973;
    long long rez = 1;
    while (p > 0) {
        if (p % 2 == 0) {
            n = (n % mod) * n % mod;
            p = p / 2;
        }
        else {
            rez = rez * (n % mod) % mod;
            p--;
        }
    }
    return rez;
}
int main() {

    freopen ("lgput.in", "r", stdin);
    freopen ("lgput.out", "w", stdout);

    long long n, p;

    scanf ("%lld%lld", &n, &p);

    printf ("%lld", lgput (n, p));

    return 0;
}