Cod sursa(job #980088)

Utilizator raulmuresanRaul Muresan raulmuresan Data 3 august 2013 21:44:23
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.58 kb
#include <cstdio>

using namespace std;

long long  n,sol,m,aux,i,modo,a;

long long putere(long long int n)
{
    long long x;
    if(n==0) return 1;
    else
    {
        if(n%2==1)
        {
            x=putere(n/2);
            return ((a*x)%modo*x)%modo;
        }
        else
        {
            x=putere(n/2);
            return (x*x)%modo;
        }
    }
}


int main()
{
    freopen("lgput.in","r",stdin);
    freopen("lgput.out","w",stdout);

    scanf("%lld %lld",&a,&n);
    modo=1999999973;

    sol=putere(n);

    printf("%d\n",sol);

}