write a go solution for Description: You have an array a_1,a_2,...,a_n where a_i=i. In one step, you can choose two indices x and y (xneqy) and set a_x=ceil(a_x/a_y) (ceiling function). Your goal is to make array a consist of n-1 ones and 1 two in no more than n+5 steps. Note that you don't have to minimize the number of steps. Input Format: The first line contains a single integer t (1<=t<=1000) — the number of test cases. The first and only line of each test case contains the single integer n (3<=n<=2*10^5) — the length of array a. It's guaranteed that the sum of n over test cases doesn't exceed 2*10^5. Output Format: For each test case, print the sequence of operations that will make a as n-1 ones and 1 two in the following format: firstly, print one integer m (m<=n+5) — the number of operations; next print m pairs of integers x and y (1<=x,y<=n; xneqy) (x may be greater or less than y) — the indices of the corresponding operation. It can be proven that for the given constraints it's always possible to find a correct sequence of operations. Note: In the first test case, you have array a=[1,2,3]. For example, you can do the following: 1. choose 3, 2: a_3=ceil(a_3/a_2)=2 and array a=[1,2,2]; 2. choose 3, 2: a_3=ceil(2/2)=1 and array a=[1,2,1]. In the second test case, a=[1,2,3,4]. For example, you can do the following: 1. choose 3, 4: a_3=ceil(3/4)=1 and array a=[1,2,1,4]; 2. choose 4, 2: a_4=ceil(4/2)=2 and array a=[1,2,1,2]; 3. choose 4, 2: a_4=ceil(2/2)=1 and array a=[1,2,1,1].. Output only the code with no comments, explanation, or additional text.