#include int main() { int i, j, k; char flag[101000] = {}; long long prime[10000]; for (i = 2, k = 0; i < 101000; i++) { if (flag[i] != 0) continue; prime[k++] = i; for (j = i; j < 101000; j += i) flag[j] = 1; } int q, Q; long long x, X, ans[30]; scanf("%d", &Q); for (q = 1; q <= Q; q++) { scanf("%lld", &x); X = x * x + 1; for (i = 0, j = 0; prime[i] * prime[i] <= X; i++) { while (X % prime[i] == 0) { ans[j++] = prime[i]; X /= prime[i]; } } if (X > 1) ans[j++] = X; for (i = 0; i < j; i++) printf("%lld ", ans[i]); printf("\n"); } fflush(stdout); return 0; }