310643: CF1864C. Divisor Chain

Memory Limit:256 MB Time Limit:1 S
Judge Style:Text Compare Creator:
Submit:0 Solved:0

Description

C. Divisor Chaintime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard output

You are given an integer $x$. Your task is to reduce $x$ to $1$.

To do that, you can do the following operation:

  • select a divisor $d$ of $x$, then change $x$ to $x-d$, i.e. reduce $x$ by $d$. (We say that $d$ is a divisor of $x$ if $d$ is an positive integer and there exists an integer $q$ such that $x = d \cdot q$.)

There is an additional constraint: you cannot select the same value of $d$ more than twice.

For example, for $x=5$, the following scheme is invalid because $1$ is selected more than twice: $5\xrightarrow{-1}4\xrightarrow{-1}3\xrightarrow{-1}2\xrightarrow{-1}1$. The following scheme is however a valid one: $5\xrightarrow{-1}4\xrightarrow{-2}2\xrightarrow{-1}1$.

Output any scheme which reduces $x$ to $1$ with at most $1000$ operations. It can be proved that such a scheme always exists.

Input

Each test contains multiple test cases. The first line contains the number of test cases $t$ ($1 \le t \le 1000$). The description of the test cases follows.

The only line of each test case contains a single integer $x$ ($2\le x \le 10^{9}$).

Output

For each test case, output two lines.

The first line should contain an integer $k$ ($1 \le k \le 1001$).

The next line should contain $k$ integers $a_1,a_2,\ldots,a_k$, which satisfy the following:

  • $a_1=x$;
  • $a_k=1$;
  • for each $2 \le i \le k$, the value $(a_{i-1}-a_i)$ is a divisor of $a_{i-1}$. Each number may occur as a divisor at most twice.
ExampleInput
3
3
5
14
Output
3
3 2 1
4
5 4 2 1
6
14 12 6 3 2 1
Note

In the first test case, we use the following scheme: $3\xrightarrow{-1}2\xrightarrow{-1}1$.

In the second test case, we use the following scheme: $5\xrightarrow{-1}4\xrightarrow{-2}2\xrightarrow{-1}1$.

In the third test case, we use the following scheme: $14\xrightarrow{-2}12\xrightarrow{-6}6\xrightarrow{-3}3\xrightarrow{-1}2\xrightarrow{-1}1$.

Output

题目大意:

题目名称:C. 除数链

题目描述:给定一个整数 x,目标是将 x 减少到 1。

操作规则:可以选择 x 的一个除数 d,然后将 x 变为 x-d,即 x 减去 d。(如果存在一个整数 q 使得 x = d * q,则称 d 是 x 的一个除数。)但是有一个额外的限制:不能选择相同的除数 d 超过两次。

输入数据格式:每个测试包含多个测试用例。第一行包含测试用例的数量 t(1 ≤ t ≤ 1000)。接下来是每个测试用例的描述。
每个测试用例只有一行,包含一个整数 x(2 ≤ x ≤ 10^9)。

输出数据格式:对于每个测试用例,输出两行。
第一行应该包含一个整数 k(1 ≤ k ≤ 1001)。
下一行应该包含 k 个整数 a1, a2, ..., ak,满足以下条件:
- a1 = x;
- ak = 1;
- 对于每个 2 ≤ i ≤ k,(ai-1 - ai) 是 ai-1 的一个除数。每个数字作为除数最多出现两次。

示例:

输入:
3
3
5
14

输出:
3
3 2 1
4
5 4 2 1
6
14 12 6 3 2 1

注意:在第一个测试案例中,我们使用以下方案:3→2→1。在第二个测试案例中,我们使用以下方案:5→4→2→1。在第三个测试案例中,我们使用以下方案:14→12→6→3→2→1。题目大意: 题目名称:C. 除数链 题目描述:给定一个整数 x,目标是将 x 减少到 1。 操作规则:可以选择 x 的一个除数 d,然后将 x 变为 x-d,即 x 减去 d。(如果存在一个整数 q 使得 x = d * q,则称 d 是 x 的一个除数。)但是有一个额外的限制:不能选择相同的除数 d 超过两次。 输入数据格式:每个测试包含多个测试用例。第一行包含测试用例的数量 t(1 ≤ t ≤ 1000)。接下来是每个测试用例的描述。 每个测试用例只有一行,包含一个整数 x(2 ≤ x ≤ 10^9)。 输出数据格式:对于每个测试用例,输出两行。 第一行应该包含一个整数 k(1 ≤ k ≤ 1001)。 下一行应该包含 k 个整数 a1, a2, ..., ak,满足以下条件: - a1 = x; - ak = 1; - 对于每个 2 ≤ i ≤ k,(ai-1 - ai) 是 ai-1 的一个除数。每个数字作为除数最多出现两次。 示例: 输入: 3 3 5 14 输出: 3 3 2 1 4 5 4 2 1 6 14 12 6 3 2 1 注意:在第一个测试案例中,我们使用以下方案:3→2→1。在第二个测试案例中,我们使用以下方案:5→4→2→1。在第三个测试案例中,我们使用以下方案:14→12→6→3→2→1。

加入题单

上一题 下一题 算法标签: