Cod sursa(job #3231469)

Utilizator mirzoca_raduMirzoca Radu Casian mirzoca_radu Data 26 mai 2024 18:17:54
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.62 kb
#include <fstream>

using namespace std;

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

unsigned int modExp(unsigned int x, unsigned int n, unsigned int q)
{
    unsigned int b = x % q;
    unsigned int r = 1;

    if (n != 0)
    {
        while (n > 0)
        {
            if (n % 2)
            {
                r = (r * b) % q;
            }
            b = (b * b) % q;
            n /= 2;
        }
    }

    return r;
}

int main()
{
    unsigned int x, n, q = 1999999973;
    fin >> x >> n;

    fout << modExp(x, n, q);

    fin.close();
    fout.close();
    return 0;
}