Cod sursa(job #2077229)

Utilizator marcogoldPop Mihali Marco Silviu marcogold Data 27 noiembrie 2017 20:16:13
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.52 kb
#include <iostream>
#include <fstream>
#include <math.h>
using namespace std;
ofstream fo("lgput.out");
ifstream fi("lgput.in");

void citire(int &x,int &y)
{
    fi>>x;
    fi>>y;
}


int modulo(int x,int y)
{ int a=1999999973;
    if(y==1)
    {
        return(x%a);
    }

    if(y%2==0)
    {

        return ((modulo(x,y/2)%a)*(modulo(x,y/2)%a))%a;
    }
    else
    {
        return ( (modulo(x,y-1)%a)*(x%a))%a;
    }

}

int main()
{ int x,y;
citire(x,y);
fo<<modulo(x,y);
    return 0;
}