Best Grouping
题号:NC215145
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
Special Judge, 64bit IO Format: %lld

题目描述

Kotori and her (n-1) classmates are going to the park. For convenience, their teacher Umi has numbered the students from 1 to n and decides to form the students into some groups, where each group consists of exactly two students.

For some reason, Kotori requires that the indices of the two students in the same group should have a common divisor greater than 1. Note that each student can only belong to at most one group, and it's not necessary that every student belongs to a group.

Please help Kotori form as many groups as possible.

输入描述:

There are multiple test cases. The first line of the input contains an integer T indicating the number of test cases. For each test case:

The first and only line contains an integer n () indicating the number of students.

It's guaranteed that the sum of n of all test cases will not exceed .

输出描述:

For each test case output one line. The line first contains an integer k indicating the number of groups, then 2k integers  follow, indicating that student a_1 and a_2 belong to the same group, student a_3 and a_4 belong to the same group, ..., student  and  belong to the same group. The integers in a line are separated by a space. If there are multiple valid answers, you can print any of them.

Please, DO NOT output extra spaces at the end of each line, otherwise your answer may be considered incorrect!
示例1

输入

复制
3
1
4
6

输出

复制
0
1 2 4
2 2 4 3 6