Cod sursa(job #561216)

Utilizator gyeresihunorGyeresi Hunor gyeresihunor Data 19 martie 2011 07:39:29
Problema Ridicare la putere in timp logaritmic Scor 30
Compilator cpp Status done
Runda Arhiva educationala Marime 0.44 kb
#include "stdio.h"

FILE *f=fopen("lgput.in","r");
FILE *g=fopen("lgput.out","w");
long long x=1999999973;
long long n;
long long hatvany(long long b);

int main()
{
	long long p;
	fscanf(f,"%lld%lld",&n,&p);
	long long meg=hatvany(p);
	fprintf(g,"%lld",meg%x);
	fclose(f);
	fclose(g);
	return 0;
}

long long hatvany(long long b)
{
	if(b==0)return 1;
	long long c=hatvany(b/2);
	if(b%2) return (n*c*c)%x;
	return (c*c)%x;
}