Cod sursa(job #327430)

Utilizator iulia609fara nume iulia609 Data 28 iunie 2009 20:45:47
Problema Ridicare la putere in timp logaritmic Scor 30
Compilator cpp Status done
Runda Arhiva educationala Marime 0.51 kb
#include<stdio.h>
#define m 1999999973
using namespace std;

int x,n;

int put(int x, int n)
{ long long re;
	if(n == 0) return 1;
		else if( n % 2 == 0 )
			{ re = put(x, n/2);
			  return (re * re) % m;
			}
			else { re = put(x, (n-1)/2);
				   return (re * re * x) % m;
				 }
}

int main()
{ //int 

	FILE *f = fopen("lgput.in", "r"); 
	FILE *g = fopen("lgput.out", "w");
	
	fscanf(f, "%d%d", &x, &n);
	
	fprintf(g, "%lld\n", (long long)put(x,n));	
	
	fclose(f);
	fclose(g);
	return 0;	
}