Cod sursa(job #757662)

Utilizator vld7Campeanu Vlad vld7 Data 12 iunie 2012 21:37:21
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.44 kb
#include <cstdio>

#define MOD 1999999973

using namespace std;

FILE *f = fopen ("lgput.in","r");
FILE *g = fopen ("lgput.out","w");


int main()
{
	int N, P, sol = 1;
	
	fscanf (f, "%d%d", &N, &P);
	N %= MOD;
	
	while (P)
	{
		if (P % 2 == 1)
		{
			sol = (sol * N) % MOD;
			N = (N * N) % MOD;
		}
		else
			N = (N * N) % MOD;
		
		P /= 2;
	}
		
	fprintf (g, "%d\n", sol);
	
	fclose(f);
	fclose(g);
	
	return 0;
}