Cod sursa(job #831347)

Utilizator Aida_SilviaStrimbeanu Aida Silvia Aida_Silvia Data 8 decembrie 2012 15:05:05
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.6 kb
#include<cstdio>
#define lli unsigned long long int

using namespace std;

const int m=1999999973;


lli putere(lli n, lli p)
{
    if (p==0) return 1;
    if (p==1) return n%m;
    if (p%2==1)
        {
           lli aux=putere(n,p-1);
           return n*aux%m;

        }
        else


            {
                lli aux=putere(n,p/2);
                return aux*aux%m;
            }
}
int main()
{
    freopen("lgput.in","r",stdin);
    freopen("lgput.out","w",stdout);

    lli n,p;

    scanf("%lli%lli",&n,&p);
    printf("%lli\n",putere(n,p));
    return 0;
}