Cod sursa(job #1345012)

Utilizator Balescu_OvidiuBalescu Ovidiu-Gheorghe Balescu_Ovidiu Data 17 februarie 2015 10:23:18
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.43 kb
#include <stdio.h>
#define p 1999999973

unsigned long pow(unsigned long a, unsigned long b){
	if(!a) return 0;
	if(!b) return 1;
	if(b==1) return a%p;
	if(b%2==0) return pow(a%p,b/2)%p*pow(a%p,b/2)%p;
	return pow(a,b-1)%p*a%p;
} 
int main(){
	unsigned long a,b;
	FILE*f=fopen("lgput.in","r");
	fscanf(f,"%ld %ld",&a,&b);
	fclose(f);
	FILE*g=fopen("lgput.out","w");
	fprintf(g,"%ld",pow(a%p,b)%p);
	fclose(g);
	return 0;
}