import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int T = Integer.parseInt(br.readLine());
StringBuilder sb = new StringBuilder();
for (int i = 0; i < T; i++) {
StringTokenizer st = new StringTokenizer(br.readLine());
int n = Integer.parseInt(st.nextToken());
int m = Integer.parseInt(st.nextToken());
int count = 0;
for (int j = 1; j < n; j++) {
for (int k = j + 1; k < n; k++) {
if (((j * j) + (k * k) + m) % (j * k) == 0) count++;
}
}
sb.append(count).append("\n");
}
br.close();
System.out.print(sb);
}
}
(a^2 + b^2 + m) / (a * b)
가 정수가 된다는건 해당 식의 결과가 나머지가 없이 딱 나누어 떨어져야 된다는 것이다.
즉, (a^2 + b^2 + m) % (a * b)
가 0이여야 한다는 것이다.
구현은 브루트포스 문제답게 반복문을 이용하면 된다.