문제: https://www.acmicpc.net/problem/9094
주어진 조건을 잘 읽고 구현하면 되는 문제다.
정수인 쌍의 개수를 구하는 문제이므로 %(나머지) 연산자를 이용해서 0이 나오면 카운트를 증가하면서 세면 된다.
입력이 최대 100이고 2중 루프로 충분히 시간 내에 풀 수 있다.
수학적으로도 풀 수 있는지는 잘 모르겠다.
소스 코드를 참고하세요. 소스 코드
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int numOfTestCases = scanner.nextInt(); for (int t = 0; t < numOfTestCases; ++t) { int n = scanner.nextInt(); int m = scanner.nextInt(); int numOfProperSets = 0; for (int a = 1; a <= n - 2; ++a) { for (int b = a + 1; b <= n - 1; ++b) { if ((a * a + b * b + m) % (a * b) == 0) { numOfProperSets++; } } } System.out.println(numOfProperSets); } scanner.close(); } } | cs |