Cod sursa(job #314411)

Utilizator Magnuscont cu nume gresit sau fals Magnus Data 11 mai 2009 19:50:40
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.42 kb
#include<stdio.h>
#define mod 1999999973

typedef unsigned long long ll;

ll k(ll a,ll p)
{
    if(p==1) return a%mod;
    ll v=k(a,p>>1);
    v=v%mod;
    v=v*v;
    v=v%mod;
    if(p&1) return (v*a)%mod;
    return v;
}

int main()
{
    ll a,p;
    freopen("lgput.in","r",stdin);
    freopen("lgput.out","w",stdout);
    scanf("%lld%lld",&a,&p);
    printf("%lld",k(a,p));
    return 0;
}