https://www.acmicpc.net/problem/9094
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// 테스트 케이스의 수 입력
int T = sc.nextInt();
// 각 테스트 케이스 처리
for (int t = 0; t < T; t++) {
// n과 m 입력
int n = sc.nextInt();
int m = sc.nextInt();
int count = 0;
// 가능한 a와 b를 순회 (1 <= a < b < n)
for (int a = 1; a < n; a++) {
for (int b = a + 1; b < n; b++) {
// (a^2 + b^2 + m) % (a * b) == 0 인지 확인
if ((a * a + b * b + m) % (a * b) == 0) {
count++;
}
}
}
// 결과 출력
System.out.println(count);
}
sc.close();
}
}
입력 처리: Scanner 클래스를 이용해 입력을 처리합니다. 먼저 테스트 케이스 수 T를 입력받습니다.
중첩 루프: 두 정수 a와 b를 순회하며 주어진 조건을 만족하는지 확인합니다.
조건 확인: (a^2 + b^2 + m) % (a * b) == 0을 확인하여, 조건을 만족하면 카운터를 증가시킵니다.
출력: 각 테스트 케이스마다 조건을 만족하는 (a, b) 쌍의 개수를 출력합니다.