Cod sursa(job #2791097)

Utilizator andreipirjol5Andrei Pirjol andreipirjol5 Data 30 octombrie 2021 09:15:32
Problema Ridicare la putere in timp logaritmic Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.53 kb
#define int64 long long
#define MOD 1999999973

#include <stdio.h>

using namespace std;

int lgput(int a, int64 n, int64 mod)
{
    int p = 1 ;
    while (n)
    {
        if (n & 1)
            p = (int64)p * a % mod ;
        a = (int64)a * a % mod ;
        n >>= 1;
    }

    return p;
}
int main()
{
    FILE *fin, *fout ;
    fin = fopen("lgput.in", "r") ;
    fout = fopen("lgput.out", "w") ;

    int n, p;
    fscanf(fin, "%d%d", &n, &p) ;

    fprintf(fout, "%d", lgput(p, n, MOD)) ;
    return 0;
}