Cod sursa(job #2273928)

Utilizator cezar.plescaCezar Plesca cezar.plesca Data 1 noiembrie 2018 09:57:36
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.46 kb
#include<stdio.h>

int pmod(int x,int p,int m){
	long long y,z;
	if(p==0)
		return 1;
	if(p & 1){
		y=pmod(x,p>>1,m);
		z=(y*y)%m;
		z=(z*x)%m;
	}
	else{
		y=pmod(x,p>>1,m);
		z=(y*y)%m;
	}
	return (int)z;
}

int main(){

	int N,P;
	int m=1999999973;

	FILE* f= fopen("lgput.in","rt");
	FILE* g= fopen("lgput.out","wt");
	
	fscanf(f,"%d %d",&N,&P);

	int r=pmod(N,P,m);

	fprintf(g,"%d\n",r);
	
	fclose(g);
	fclose(f);
	return 0;
}