Cod sursa(job #2377732)

Utilizator Ilie_MityIlie Dumitru Ilie_Mity Data 10 martie 2019 23:49:13
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.65 kb
#include<cstdio>

using namespace std;

long long int ridicareLaPutere(long long int x, long long int y)
{
    if(y==2)
        return x*x;
    if(y==1)
        return x;
    if(y==0)
        return 1;
    if(y%2==1)
        x=ridicareLaPutere(x,y-1)*x;
    else
        x=ridicareLaPutere(x,y/2)*ridicareLaPutere(x,y/2);
    return x;
}

int main ()
{
    FILE *f,*g;
    long long int a,b;
    f=fopen("lgput.in", "r");
    fscanf(f, "%lli", &a);
    fscanf(f, "%lli", &b);
    fclose(f);
    a = ridicareLaPutere(a,b);
    a%=1999999973;
    g=fopen("lgput.out", "w");
    fprintf(f, "%lli", a);
    fclose(g);
    return 0;
}