Cod sursa(job #254177)

Utilizator adrian69adrian horia adrian69 Data 6 februarie 2009 22:15:34
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.34 kb
#include<stdio.h>
#include<string.h>
int n_max=1001;
int m=1999999973;
int main()
{unsigned int i,n,p;
 long long a,sol=1;
 freopen("lgput.in","r",stdin);
 freopen("lgput.out","w",stdout);
 scanf("%d %d",&n,&p);
 a=n;
 for(i=0;(1<<i)<=p;++i)
	{if(((1<<i)&p)>0)
		sol=(sol*a)%m;
	a=(a*a)%m;
	
	}
	printf("%lld\n",sol);
 return 0;
}