Cod sursa(job #2720816)

Utilizator LawrentiuTirisi Claudiu Lawrentiu Data 11 martie 2021 12:10:35
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.58 kb
#include <iostream>
#include <fstream>
#define prime 1999999973
using namespace std;
ifstream f("lgput.in");
ofstream o("lgput.out");
int main()
{
    long long a, b;
    f >> a >> b;

    bool hadOne = 0;
    int c;
    long long r = 1;
    for (int i = sizeof(b) * 8 - 1; i >= 0; i--)
    {
        c = (b >> i) & 1;
        if (hadOne || c)
        {
            hadOne = 1;
            r = (r * r) % prime;
            if (c)
            {
                r = (r * a) % prime;
            }
            cout << r << " ";
        }
    }
    o << r % prime;
}