Cod sursa(job #1583485)

Utilizator cordun_cristinaCristina Maria Cordun cordun_cristina Data 28 ianuarie 2016 23:46:57
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.48 kb
#include <iostream>
#include <fstream>

using namespace std;
ifstream f("lgput.in");
ofstream g("lgput.out");

const long long rest = 1999999973LL;
long long n, p;
long long Sol;

int main()
{
    f>>n>>p;
    Sol = n;
    while(p > 1)
    {
        if(p%2 == 0)
        {
            Sol = (Sol*Sol) % rest;
            p = p/2;
        }
        else
        {
            Sol = (Sol*n) % rest;
            p--;
        }
    }
    g<<Sol<<'\n';
    return 0;
}