luogu#P2019. 四平方和定理

四平方和定理

题目描述

对于正整数 nn,请求出有多少个有序整数对 (a,b,c,d)(a,b,c,d),使得 a2+b2+c2+d2=na^2+b^2+c^2+d^2=n。答案对 109+710^9+7 取模。

输入格式

本题有多组数据

第一行一个整数 TT,表示数据组数。

对于每组数据,一行一个正整数,表示 nn 的值。

输出格式

输出共 TT 行。

kk 行一个非负整数,表示第 kk 组数据的答案对 109+710^9+7 取模后的值。

10
4
1000
200000
802241960520
999999999937
49770428644836900
250000006000000027
729021870143100133
900000000000000017
907000000000033559
24
3744
93744
59948653
999943511
821944886
26
729842040
600000501
152276389

提示

测试点编号 限制
131\sim 3 n2×105n\le 2\times 10^5
464\sim 6 n1012n\le 10^{12}
7107\sim 10

对于所有数据,1n1018,1T501\le n\le 10^{18},1\le T\le 50

对于样例一的第一组数据,以下均为符合题意的 (a,b,c,d)(a,b,c,d)(此处没有列出所有可行的数对)。

$$(1,1,1,1),(1,1,1,-1),(-1,-1,-1,-1),(2,0,0,0),(0,-2,0,0) $$