Cod sursa(job #3151526)

Utilizator TeddyDinutaDinuta Eduard Stefan TeddyDinuta Data 21 septembrie 2023 18:08:58
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.47 kb
#include <bits/stdc++.h>

using namespace std;
ifstream in("lgput.in");
ofstream out("lgput.out");
long long mod = 1999999973;
long long n, p;

long long lgp(long long n, long long p) {
    long long ans = 0;

    while (p) {

        if (p & 1) {
            ans  = (ans + n) % mod;
            p--;
        }

        n = (n * n) % mod;
        p >>= 1;
    }

    return ans;
}
int main()
{
    in >> n >> p;
    out << lgp(n, p);
    return 0;
}