Cod sursa(job #743543)

Utilizator cipriancxFMI - gr143 Timofte Ciprian cipriancx Data 4 mai 2012 21:00:05
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.53 kb
#include <iostream>
#include<cstdio>

using namespace std;

long int a,n;

long int putere(long int a,long int p, long int n)
{
long int put;
   if(n==0) return 1;
    if(n%2==0){

    put=putere(a,p,n/2)*putere(a,p,n/2);
    put%=p;
    return put;
        }

    put=a*putere(a,p,(n-1)/2)*putere(a,p,(n-1)/2);
    put%=p;
    return put;
}

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


cin>>a>>n;
a%=1999999973;



cout<<putere(a,1999999973,n);


    return 0;
}