Cod sursa(job #2884597)

Utilizator Alex_DumitrascuAlex Dumitrascu Alex_Dumitrascu Data 4 aprilie 2022 11:46:20
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.53 kb
#include <iostream>
#include <cstdio>
#define ll long long
#define MOD 1999999973
using namespace std;
FILE *fin=fopen("lgput.in", "r");
FILE *fout=fopen("lgput.out", "w");
ll log_pow(ll a, ll b)
{
    ll prod=1;
    while (b) {
        if (b%2==1) {
            prod*=a;
            prod%=MOD;
        }
        a*=a;
        a%=MOD;
        b/=2;
    }
    return prod;
}
int main()
{
    ll a, b;
    fscanf(fin, "%lld%lld", &a, &b);
    ll pow=log_pow(a, b)%MOD;
    fprintf(fout, "%lld", pow);
    return 0;
}