Cod sursa(job #577308)

Utilizator petroMilut Petronela petro Data 10 aprilie 2011 00:26:32
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
FILE *F=fopen("lgput.in","r");
FILE *G=fopen("lgput.out","w");

long long n,p;

void rez()
{
	long long putere=1, nr=n, i;
	
	for(i=0; (1<<i)<=p;++i)
	{
		if(((1<<i)&p)!=0)
			putere=((putere % mod) * (nr%mod)) %mod;
		
		nr=((nr%mod)*(nr%mod))%mod;
	}
	
	fprintf(G,"%lld\n",putere);
}

int main()
{
	fscanf(F,"%lld%lld",&n,&p);
	rez();
	fclose(F);
	return 0;
}