Cod sursa(job #2192821)

Utilizator mihnealookmihnea zamfir mihnealook Data 7 aprilie 2018 13:49:56
Problema Ridicare la putere in timp logaritmic Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include <iostream>
#include <fstream>

#define MOD 1999999973

using namespace std;

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

int main()
{
    unsigned int n, p, rezultat, rest;
    f >> n >> p;
    if(p == 0)
        g << 1;
    if(p == 1)
        g << n;
    p = p - 1;
    rezultat = n;
    if(p > 0)
    {
        while(p)
        {
            rest = p % 2;
            if(rest == 0)
            {
                rezultat = rezultat * rezultat % MOD;
                p = p / 2;
            }
            else
            {
                rezultat = rezultat * n;
                p--;
            }
        }
    }
    g << rezultat;
}