Cod sursa(job #2946103)

Utilizator marateodorescu11Teodorescu Mara marateodorescu11 Data 24 noiembrie 2022 15:59:45
Problema Ridicare la putere in timp logaritmic Scor 100
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");
const int MOD = 1999999973;
int ridicare (int a, int n)
{
    if (n == 0)
        return 1;
    else
    {
        if (n % 2 == 1)
            ridicare(a, n/2 * 2 + 1);
        else
            ridicare (a, n/2 * 2);
    }
}
int main()
{
    int a, n;
    fin >> a >> n;
    int p = 1;
    while (n)
    {
        int b = n % 2;
        if(b != 0)
        {
            p = (long long) p * a % MOD;
        }
        a = (long long) a * a % MOD;
        n /= 2;
    }
    fout << p;
    return 0;
}