Cod sursa(job #1968467)

Utilizator Horia14Horia Banciu Horia14 Data 17 aprilie 2017 18:27:27
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.58 kb
#include<cstdio>
using namespace std;

int x, p;
const int MOD = 1999999973;

long long unsigned Pow(int x, int y)
{
    long long unsigned sol, a;
    sol = 1;
    a = x;
    while(y)
    {
        if(y & 1)
        {
            sol = (sol*a) % MOD;
            y--;
        }
        a = a*a;
        y >>=1;
    }
    return sol;
}

int main()
{
    FILE *fin, *fout;
    fin = fopen("lgput.in","r");
    fout = fopen("lgput.out","w");
    fscanf(fin,"%d%d",&x,&p);
    fprintf(fout,"%llu\n",Pow(x,p));
    fclose(fin);
    fclose(fout);
    return 0;
}