Cod sursa(job #2655399)

Utilizator DariusGhercaDarius Gherca DariusGherca Data 4 octombrie 2020 11:49:06
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.47 kb
#include <iostream>
#include <cmath>
#include <fstream>
using namespace std;
const long long MOD=1999999973;
long long v(int n,int p)
{
    if(p==0)
    return 1;
    if(p==1)
    return n%MOD;
    if(p%2==0)
    return v(pow(n,2),p/2)%MOD;
    else
    return n*v(pow(n,2),(p-1)/2)%MOD;
}
int main()
{
    ifstream f("lgput.in");
    long long n,p;
    f>>n>>p;
    f.close();
    ofstream g("lgput.out");
    g<<v(n,p);
    g.close();
    return 0;
}