Cod sursa(job #223408)

Utilizator cotofanaCotofana Cristian cotofana Data 28 noiembrie 2008 16:38:19
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.41 kb
#include <stdio.h>

long a, b, c=1999999973, rez;

int main()
{
	long p=1, pp, v, vv;
	freopen("lgput.in", "r", stdin);
	freopen("lgput.out", "w", stdout);
	scanf("%ld %ld", &a, &b);
        v=a;
	a%=c;
	b%=(c-1);
	while (p<b)
	{
		pp=1;
		vv=a;
		while (p+pp<=b)
		{
			p+=pp;
			pp+=pp;
			v*=vv;
			v%=c;
			vv*=vv;
			vv%=c;
		}
	}
        v%=c;
        printf("%ld\n", v);
	return 0;
}