Cod sursa(job #895788)

Utilizator cristi103tiron cristian cristi103 Data 27 februarie 2013 12:33:14
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.42 kb
#include <fstream>
#include <string>
using namespace std;
ifstream cin("lgput.in");
ofstream cout("lgput.out");
int main ()
{
    long long r,n,p;
    int m=1999999973;
    r=1;
    cin>> n >> p;
     while(p!=0)
     {
    if(p%2==0)
    {
        n=(n*n)%m;
        p=p/2;
    }
    else
    {
        r=(r*n)%m;
        p-=1;
        n=(n*n)%m;
        p=p/2;
    }
    }
    cout<<r;
    return 0;
}