Cod sursa(job #2560335)

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

using namespace std;

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

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

int main()
{
    fscanf(fin, "%d%d", &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, "%d", s);
    return 0;
}