Cod sursa(job #636869)

Utilizator mihaipopa12Popa Mihai mihaipopa12 Data 20 noiembrie 2011 00:46:33
Problema Ciuperci Scor 30
Compilator cpp Status done
Runda .com 2011 Marime 0.6 kb
#include<stdio.h>

#define mod 666013

FILE*f=fopen("ciuperci.in","r");
FILE*g=fopen("ciuperci.out","w");

int q,i;
long long x;

int rec ( long long n ){
	if ( n == 1 )	return 1;
	if ( n == 2 )	return 2;
	if ( n & 1 ){
		int aux = rec(n/2);
		aux = (1LL * aux * aux) % mod;
		return aux;
	}
	else{
		int aux1 = rec((n-1)/2);
		int aux2 = rec((n-1)/2+1);
		int aux = (1LL * 2 * aux1 * aux2) % mod;
		return aux;
	}
}

int main () {
	
	fscanf(f,"%d",&q);
	for ( i = 1 ; i <= q ; ++i ){
		fscanf(f,"%lld",&x);
		fprintf(g,"%d\n",rec(x));
	}
	
	fclose(f);
	fclose(g);
	
	return 0;
}