# BOJ01037 약수
https://www.acmicpc.net/problem/1037 (opens new window)
양수 A가 N의 진짜 약수가 되려면, N이 A의 배수이고, A가 1과 N이 아니어야 한다. N의 진짜 약수가 모두 주어질 때 N을 구해야 한다.
20의 약수를 나열해보면, [1, 2, 4, 5, 10, 20]
이다. 이중에 진짜 약수는 [2, 4, 5, 10]
이다. 이때 2 x 10
, 4 x 5
가 n
인 20이 되는 것을 알 수 있다.
입력으로 주어지는 약수는 정렬되지 않은 상태이다. 그렇기 때문에 Arrays.sort()
를 활용하여 오름차순 정렬한다.
n의 값은 divisors[0] * divisors[divisors.length - 1]
로 처리하면 n의 값을 구할 수 있다.
약수의 개수가 홀수인 25도 마찬가지이다. [1, 5, 25]
인 경우 진짜 약수는 [5]
이다. divisors[0]
가리키는 값도 5
이고 divisors[divisors.length - 1]
도 5
이기 때문에 n
은 25
이다.
import java.util.Arrays;
import java.util.Scanner;
public class BOJ1037 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int[] divisors = new int[n];
for (int i = 0; i < n; i++) {
divisors[i] = scanner.nextInt();
}
Arrays.sort(divisors); // 오름차순 정렬
System.out.println(divisors[0] * divisors[divisors.length - 1]);
}
}