Cod sursa(job #2116704)

Utilizator arcoC. Nicolae arco Data 27 ianuarie 2018 21:05:47
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator c Status done
Runda Arhiva educationala Marime 0.56 kb
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <stdint.h>

int main(void)
{
	FILE *in =  fopen("lgput.in", "r");
	FILE *out = fopen("lgput.out", "w");

	if(in != NULL && out != NULL)
	{
		uint64_t x, n;
		fscanf(in, "%llu%*c%llu%*c", &x, &n);
		uint64_t m = 1999999973, res = 1;
		while(n)
		{
			if(n % 2 != 0)
			{
				res = ((res % m) * (x % m)) % m;
			}
			x = ((x % m) * (x % m)) % m;
			n /= 2;
		}
		fprintf(out, "%llu\n", res);

		fclose(in);
		fclose(out);
	}
	else
	{
		printf("file error\n");
	}

	return 0;
}