Cod sursa(job #211229)

Utilizator ssergiussSergiu-Ioan Ungur ssergiuss Data 1 octombrie 2008 13:44:41
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.39 kb
#include<stdio.h>
long long unsigned n,p,k=1999999973;
void solve(){
    long long unsigned i,x,sol=1;
    scanf("%lld%lld",&n,&p);
    x=n;
    for(i=0; (1<<i)<=p; ++i){
        if(((1<<i)&p)>0)
            sol=(sol*x)%k;
        x=(x*x)%k;}
    printf("%lld",sol);}
int main(){
    freopen("lgput.in","r",stdin);
    freopen("lgput.out","w",stdout);
    solve();
    return 0;}