Cod sursa(job #2560357)

Utilizator Alex62493Manghiuc Alexandru Alex62493 Data 27 februarie 2020 22:01:09
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.4 kb
#include <bits/stdc++.h>
#include <cstdio>

using namespace std;

FILE* fin=fopen("lgput.in", "r");
FILE* fout=fopen("lgput.out", "w");

long long n, p, m=1999999973, s=1, a;

int main()
{
    fscanf(fin, "%lld%lld", &n, &p);
    a=n;
    for (int i=0; (1<<i)<=p; i++)
    {
        if ((1<<i)&p)
            s=(a*s)%m;
        a=(a*a)%m;
    }
    fprintf(fout, "%lld", s);
    return 0;
}