Cod sursa(job #2139619)

Utilizator vladboss2323Ciorica Vlad vladboss2323 Data 22 februarie 2018 17:45:38
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.54 kb
#include <iostream>
#include <fstream>
using namespace std;

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

const int modulo=1999999973;
long long n,q;

int main()
{
    long long p=1;
    in>>n>>q;
    while(q!=0)
    {
        if(q%2==1)
            p=(p*n)%modulo;
        q=q/2;
        n=n*n%modulo;
    }
    out<<p;
    /*
    a^35 = a^1 * a^2 * a^32
    a^2, a^4, a^8...
    while (n != 0){
        if (n % 2 != 0) {
            p *= a;
        }
        n /= 2;
        a *= a;
    }
    */
    return 0;
}