Cod sursa(job #265080)

Utilizator PavelRazvanPavel Razvan PavelRazvan Data 23 februarie 2009 11:13:49
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.41 kb
#include<stdio.h>
#define ll long long unsigned
#define m 1999999973
ll n,p;
ll lgput (ll n,ll p)
{
    if(p==0)
    return 1;
    if(p%2==0)
        return lgput (((n%m)*(n%m))%m,p/2);
    return ((n%m)*lgput(((n%m)*(n%m))%m,p/2))%m;
}
int main ()
{
    freopen("lgput.in","r",stdin);
    freopen("lgput.out","w",stdout);
    scanf("%llu%llu",&n,&p);
    printf("%llu",lgput(n,p)%m);
    return 0;
}