Cod sursa(job #1783162)

Utilizator GeanaVladGeana Vlad GeanaVlad Data 18 octombrie 2016 20:26:18
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.44 kb
#include <iostream>
#include<cstdio>
using namespace std;
long long n,p,sol=1;
const long long m = 1999999973;
int main()
{
   freopen("lgput.in","r",stdin);
   freopen("lgput.out","w",stdout);
   cin>>n>>p;
   n=n%m;
   while(p>0)
   {
       if(p&1)
       {
           sol=((sol)%m*(n)%m)%m;
           p--;
       }
        if(p)
        {
           n=((n)%m*(n)%m)%m;
           p>>=1;
        }
   }
   cout<<sol;
}