Cod sursa(job #1459360)

Utilizator uacyUntesu Albert uacy Data 9 iulie 2015 17:35:55
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator c Status done
Runda Arhiva educationala Marime 0.34 kb
#include <stdio.h>

int main(){

	FILE *fi = fopen("lgput.in","r");
	FILE *fo = fopen("lgput.out","w");

	int i,n,p;
	int m = 1999999973;

	long long a, sol = 1;

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

	a = n;

	for(i = 0; (1<<i) <= p; ++i){
		if( ((1<<i) & p) > 0){
			sol = (sol * a) % m;
		}
		a = (a * a) % m;
	}

	fprintf(fo, "%d\n",sol);

	return 0;
}