Cod sursa(job #2354259)

Utilizator AndreiGSGhiurtu Andrei AndreiGS Data 25 februarie 2019 08:22:17
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.38 kb
#include <fstream>
#define m 1999999973
using namespace std;

ifstream f("lgput.in");
ofstream g("lgput.out");
int n, p;

int ridicare_la_putere()
{
    long long a=n, sol=1;
    for(int i=0; (1<<i)<=p; i++)
    {
        if(((1<<i)&p)>0)
          sol=(a*sol)%m;
        a=(a*a)%m;
    }
    return sol;
}
int main()
{
    f>>n>>p;
    g<<ridicare_la_putere();
}