Cod sursa(job #1390616)

Utilizator Daria09Florea Daria Daria09 Data 17 martie 2015 10:37:34
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.55 kb
#include <iostream>
#include <fstream>
#define r 1999999973;
using namespace std;
ifstream f("lgput.in");
ofstream g("lgput.out");
long long n,x,rez;
//Ridicare la putere in timp logaritmic
//Dandu-se doua numere naturale N si P, se cere sa se calculeze restul impartirii lui NP la 1999999973.
int main()
{
    f>>n>>x;
    rez=1;
    while(x>0)
    {
        if(x%2==0)
        n=(n*n)%r
          else
        {
           rez=(rez*n)%r;
           n=(n*n)%r;
        }
        x=(int)(x/2);
    }
    g<<rez<<"\n";
    return 0;
}