Cod sursa(job #2985890)

Utilizator InsanekktVlad Matei Insanekkt Data 27 februarie 2023 12:29:23
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.61 kb
#include <iostream>
#include <fstream>
using namespace std;

ifstream fin("lgput.in");
ofstream fout("lgput.out");

long long n, p;
const long long mod=1999999973;

long long putere(long long A, long long n)
{
    if(n==1) return A;
    if(n%2==1) return (A%mod*putere(A%mod*A%mod, n/2))%mod;
    return putere(A%mod*A%mod, n/2)%mod;
}

long long Putere(long long A , long long n)
{
    long long P=1;
    while(n)
    {
        if(n%2==1)
            P=(P%mod*A%mod)%mod;
        A=(A%mod* A%mod)%mod;
        n/=2;
    }
    return P;
}
int main()
{
    fin>>n>>p;
    fout<<Putere(n, p);
}