Cod sursa(job #2879311)

Utilizator Tudose_StefanTudose Alexandru Stefan Tudose_Stefan Data 28 martie 2022 13:40:47
Problema Ridicare la putere in timp logaritmic Scor 50
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.58 kb
#include <fstream>
#define imp 1999999973

using namespace std;

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

unsigned int n, p;
long long rez = 1;

unsigned int puterelog(unsigned int n, unsigned int p)
{
    if (p == 0)
        return 1;
    if (p % 2 == 0)
    {
        long long curent = puterelog(n, p/2);
        return (curent * curent) % imp;
    }
    else
    {
        long long curent = puterelog(n, (p-1)/2);
        return (curent * curent * n) % imp;
    }
}


int main()
{
    fin >> n >> p;
    fout << puterelog(n, p);
    return 0;
}