Cod sursa(job #2162770)

Utilizator ale.sicobeanAlexandra Sicobean ale.sicobean Data 12 martie 2018 13:43:41
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.45 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("lgput.in");
ofstream fout("lgput.out");

int log_putere(int n,int p,int mod)
{
    long long a=n;
    long long rez=1;
    for(int i=0;(1<<i)<=p;i++)
    {
        if(((1<<i)&p)>0)
            rez=1LL*(rez*a)%mod;
        a=1LL*(a*a)%mod;
    }
    return rez;
}
int main()
{
    long long n,p;
    fin>>n>>p;
    fout<<log_putere(n,p,1999999973);
    return 0;
}