Cod sursa(job #1470595)

Utilizator starduststardust stardust Data 11 august 2015 17:58:04
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.36 kb
#include <stdio.h>
#define modulo 1999999973
#define ll long long

int main()
{
	freopen("lgput.in", "r", stdin);
	freopen("lgput.out", "w", stdout);

	ll n, p, sol = 0LL;

	scanf("%lld %lld", &n, &p);
	ll temp = n;
	
	for (ll i = 0LL; (1 << i) <= p; i++)
	{
		if ((1 << i) & p)
			sol = (sol + temp) % modulo;

		temp = (temp * temp) % modulo;
	}
	printf("%lld\n", sol);
}