본문 바로가기
Develop/백준 (Cpp)

[백준] 9094번 : 수학적 호기심 (C++)

by Tarra 2023. 2. 6.

9094번 : 수학적 호기심


문제 )

두 정수 n과 m이 주어졌을 때, 0 < a < b < n인 정수 쌍 (a, b) 중에서 (a2+b2+m)/(ab)가 정수인 쌍의 개수를 구하는 프로그램을 작성하시오.

 

입력 :

첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있으며, n과 m이 주어진다. 두 수는 0보다 크고, 100보다 작거나 같다.

 

 

출력 :

각 테스트 케이스마다 문제의 조건을 만족하는 (a, b)쌍의 개수를 출력한다.

 

 

 

 

 

풀이)

 

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
26
27
28
29
30
31
32
33
#include <iostream>
 
using namespace std;
 
int main()
{
    int t, n, m;
 
    // 입출력이 많은지 해당 처리를 해줘야 속도가 빠르게 나온다.
    cin.tie(NULL);
    cin.sync_with_stdio(false);
    cin >> t;
 
    for (int i = 0; i < t; i++) {
        int cnt = 0;
        int result;
        cin >> n >> m;
 
        for (int j = 1; j < n; j++) {
            for (int k = j + 1; k < n; k++) {
                result = (j * j + k * k + m);
                if (result % (j * k) == 0) {
                    cnt++;
                }
            }
        }
        cout << cnt << "\n";
        cnt = 0;
    }
 
    return 0;
}
 
cs

출처 : https://www.acmicpc.net/problem/9094 

 

9094번: 수학적 호기심

첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있으며, n과 m이 주어진다. 두 수는 0보다 크고, 100보다 작거나 같다.

www.acmicpc.net