Cod sursa(job #490480)

Utilizator DanutzRusu Dan Andrei Danutz Data 6 octombrie 2010 17:49:28
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.38 kb
#include <stdio.h>
#include <string.h>
#define nmax 10001
#define m 1999999973
FILE *f,*g;
int main(){
	long long a,sol=1;
	long i,n,p;
	f=fopen("lgput.in","r");
	fscanf(f,"%ld %ld",&n,&p);
	fclose(f);
	a=n;
	for (i=0;(1<<i)<=p;i++)
	{
		if (((1<<i)&p)>0)
			sol=(sol*a)%m;
		a=(a*a)%m;
	}
	g=fopen("lgput.out","w");
	fprintf(g,"%lld\n",sol);
	fclose(g);
	return 0;
}