Cod sursa(job #2272168)

Utilizator arosearose red arose Data 29 octombrie 2018 19:31:15
Problema Ridicare la putere in timp logaritmic Scor 0
Compilator c-64 Status done
Runda Arhiva educationala Marime 0.46 kb
#include <stdio.h>


unsigned int fast_multiply(unsigned int n, unsigned int p)
{
	unsigned int r = 1;
	int i;
	for (i=31;i>=0;i--)
	{
		unsigned int k = p>>i;
		if ((k&1)==1)
		{
			r = (r*n) % 1999999973;
		}
		else {
			r = (r*r) % 1999999973;
		}
	}
	return r;
}

int main()
{
	FILE *inptr = fopen("logput.in","r");
	FILE *outptr = fopen("logput.out","w");

	unsigned int n=0,p=0;

	fscanf(inptr,"%d %d", &n, &p);

	fprintf(outptr,"%d", fast_multiply(n,p));

	return 0;
}