Cod sursa(job #1513069)

Utilizator cristid9Cristi D cristid9 Data 28 octombrie 2015 22:37:37
Problema Ridicare la putere in timp logaritmic Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.85 kb
#include <iostream>
#include <fstream>
#include <bitset>

const int mod = 1999999973;

long long int fast_exp(int n, int p)
{
    if (p == 0)
        return 1 % mod;

    if (p == 1)
        return n % mod;

    long long result = (n * n) % mod;
    p /= 2;

    while (p != 1)
    {
        result = (result * result) % mod;
        p /= 2;
    }

    return result;
}

int main()
{
    std::ifstream in("lgput.in");
    std::ofstream out("lgput.out");

    int n, p;

    in >> n;
    in >> p;

    int counter = 1;
    long long result = 1;

    while (p != 0)
    {
        if ((p & 1) == 1)
        {
            // std::cout << fast_exp(n, counter) << std::endl;
        }
        counter *= 2;
        p >>= 1;
    
        std::cout << result << std::endl;
    }

    result %= mod;

    out << result << std::endl;

    in.close();
    out.close();

    return 0;
}