#P3614. 将整数表示为两平方数之和 (Represent A Number As Two Square Sum)

将整数表示为两平方数之和 (Represent A Number As Two Square Sum)

将整数表示为两平方数之和 (Represent A Number As Two Square Sum)

时间限制:5 秒

题目描述

给定 QQ 组数据。

对于每组数据,给定一个整数 NiN_i。找出所有满足 Ni=a2+b2N_i = a^2 + b^2 的非负整数对 (a,b)(a, b)

约束条件

  • 1Q1001 \le Q \le 100
  • 0Ni10180 \le N_i \le 10^{18}

输入

Q
N_0
N_1
⋮
N_{Q-1}

输出

对于每组测试数据,设满足条件的数对 (a,b)(a, b) 的个数为 nn。按以下格式共输出 n+1n + 1 行。输出顺序可以任意。

n
a b
⋮
a b
11
0
1
2
3
4
5
6
7
8
9
10
1
0 0
2
0 1
1 0
1
1 1
0
2
0 2
2 0
2
1 2
2 1
0
0
1
2 2
2
0 3
3 0
2
3 1
1 3
10
5
25
125
13
65
998244353
1000000007
1000000009
536870912
1073741824
2
1 2
2 1
4
4 3
0 5
5 0
3 4
4
11 2
5 10
10 5
2 11
2
2 3
3 2
4
7 4
8 1
1 8
4 7
2
31348 3943
3943 31348
0
2
3747 31400
31400 3747
1
16384 16384
2
0 32768
32768 0