본문 바로가기
알고리즘 문제 풀이/백준

백준 9094 수학적 호기심 Kotlin (완전탐색)

by 옹구스투스 2022. 1. 5.
반응형

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

 

9094번: 수학적 호기심

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

www.acmicpc.net

문제

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

입력

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

출력

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

알고리즘 분류

풀이

정말 간단한 완전 탐색 문제이다.

문제에서 주어진 식을 그대로 구현하면 된다.

2중 포문으로 a와 b를 구해도 가볍게 통과할 수 있다.

 

코드

val br = System.`in`.bufferedReader()

fun main() = with(System.out.bufferedWriter()){

    val t = br.readLine().toInt()
    repeat(t){
        val (n,m) = br.readLine().split(' ').map{it.toInt()}
        var answer=0
        for(i in 1 until n-1){
            for(j in i+1 until n){
                if((i*i+j*j+m)%(i*j)==0){
                    answer++
                }
            }
        }
        write("$answer\n")
    }

    close()
}
반응형

댓글