众所周知,任何一个数 都可以拆成若干项不同的、由 的次幂和 的次幂相乘之和,即 且 。牛牛给你这个整数 ,希望你能找到这样两个长度为 的序列 和 满足给出的方程,并且按照由大到小的顺序依次输出。
输入描述:
每个测试文件均包含多组测试数据。第一行输入一个整数 代表数据组数,每组测试数据描述如下:在一行上输入一个整数 代表给定的初始数字。


输出描述:
对于每一组测试数据,第一行输出一个整数  代表序列的项数,第二行输出  个不同的整数  代表拆出的序列,并由大到小依次输出。如果有多种合法答案,您可以输出任意一种。
示例1

输入

5
10
15
123
33
321

输出

2
8 2
2
12 3
3
96 24 3
3
24 6 3
4
288 24 6 3

说明

10=2^3\times3^0+2^1\times3^0
15=2^2\times3^1+2^0\times3^1
123=2^5\times3^1+2^3\times3^1+2^0\times3^1
33=2^3\times3^1+2^1\times3^1+2^0\times3^1
321=2^5\times3^2+2^3\times3^1+2^1\times3^1+2^0\times3^1
加载中...