Cod sursa(job #2081774)

Utilizator cocacola0tura adi cocacola0 Data 5 decembrie 2017 09:38:13
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
#include <fstream>
using namespace std;

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

unsigned long long x=1999999973;

unsigned long long lgput(unsigned long long n,unsigned long long p){
    if(p==0)
        return 1;                                                      //cand p ajunge la finalul recursivitatii
    if(p%2==0)
        return lgput((n*n)%x,p/2);                                    //daca puterea e para
    return ((lgput((n*n)%x,(p-1)/2))*n)%x;                            // daca puterea este impara
}

int main()
{
    unsigned long long n,p;
    fin>>n>>p;
    fout<<lgput(n,p)%x;
    return 0;
}