Recently i tried this problem at CodeChef.This is the Problem Definition.
This is probably the easiest task of this problem set. To help you understand the task let us define two key functions: f(n,k), (with k <= n) which gives the number of ways we can draw a sample of k objects from a set of n-distinct objects where order of drawing is not important and we do not allow repetition. G(x1, x2, x3, ... , xn) is the largest integer that perfectly divides all of {x1, x2, x3, ... , xn}. Given an integer N, your task is to compute the value of Y where Y = G( f(2*N,1), f(2*N,3), f(2*N,5), ... , f(2*N,2*N-1)).
Input
The first line of the input contains an integer T denoting the number of test cases. The description of T test cases follows. The first and the only line of each test case contains a single integer denoting the given N as described in the problem statement.
Output
For each test case, output a single line containing the value of Y. Constraints
1 ≤ T ≤ 10000 2 ≤ N ≤ 1011
Example
Input: 3 6 5 4 Output: 4 2 8
Now i wrote a code in Java which works perfectly fine but the CodeChef online judge give TLE error, so i tried it a couple of different ways but with no success. So i checked some solution which others had posted and i Didnt have a clue what their algorithm did but magically it always came to the right answer So what my concern is that what books should i refer to improve the way these algorithms are written . P.S. Yes i have read Corman
Some other solution did some normal addition and subtraction and Bang!! their answer were correct This was one such solution
I am also showing what i had attempted :-
okay this question may be subjective but i would really like some suggestion as to where to start from