Cod sursa(job #1749075)

Utilizator hzugravuHoria-Mihai Zugravu hzugravu Data 27 august 2016 20:24:32
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator c Status done
Runda Arhiva educationala Marime 0.46 kb

#include <stdio.h>

int
main()
{

	FILE *fin, *fout;

	unsigned long long  N, P, R, C;

	fin = fopen("lgput.in", "r");

	fscanf(fin, "%lli %lli", &N, &P);

	R = 1;
    C = 1999999973;

    while (0 != P)
	{
		if (0 == P % 2)
		{
			N = (N * N) % C ;
			P = P / 2;
		}
		else
		{
			R = (R * N) % C;
			P = P - 1;
		}

	}

	fclose(fin);

	fout = fopen("lgput.out", "w");

	fprintf(fout, "%lli", R);

	fclose(fout);

	return 0;
}