Cod sursa(job #637437)

Utilizator swift90Ionut Bogdanescu swift90 Data 20 noiembrie 2011 14:27:10
Problema Ciuperci Scor 0
Compilator cpp Status done
Runda .com 2011 Marime 0.53 kb
#include<cstdio>
using namespace std;
const long long MOD = 666013;
long long N,T;
long long solve(long long X){
	if(X^(X+1)==X)
		return 1;
	if(X==1)
		return 1;
	if(X==2)
		return 2;
	if(X&1){
		long long sol=solve(X>>1);
		return (sol*sol)%MOD;
	}
	return (solve((X-1)>>1)*solve(X>>1)*2)%MOD;
}
int main(){
	freopen("ciuperci.in","r",stdin);
	freopen("ciuperci.out","w",stdout);
	scanf("%lld",&T);
	for(;T;--T){
		scanf("%lld",&N);
		printf("%lld\n",solve(N));
	}
	
	fclose(stdin);
	fclose(stdout);
	return 0;
}