Cod sursa(job #211224)

Utilizator ssergiussSergiu-Ioan Ungur ssergiuss Data 1 octombrie 2008 13:26:43
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.4 kb
#include<stdio.h>
long unsigned n,p;
void solve(){
    long unsigned i,x,sol=1,k=199999973;
    scanf("%ld%ld",&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("%ld",sol);}
int main(){
    freopen("lgput.in","r",stdin);
    freopen("lgput.out","w",stdout);
    solve();
    return 0;}