Cod sursa(job #2169310)

Utilizator vladsirbu23Vlad Sirbu vladsirbu23 Data 14 martie 2018 14:44:15
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.55 kb
#include <iostream>
#include <fstream>
#define val 1999999973
using namespace std;
ifstream fin("lgput.in");
ofstream fout("lgput.out");
int putere(int n,int p)
{
    int x;
    if(p==1)
        return n%val;
    else
    {
        if(p%2==0)
        {
            x=putere(n,p/2);
            return ((x%val)*(x%val))%val;
        }
        else
        {
            x=putere(n,p/2);
            return ((((x%val)*(x%val))%val)*(n%val))%val;
        }
    }
}
int main()
{
    int n,p;
    fin>>n>>p;
    fout<<putere(n,p);
}