양수 A가 N의 진짜 약수가 되려면, N이 A의 배수이고, A가 1과 N이 아니어야 한다. 어떤 수 N의 진짜 약수가 모두 주어질 때, N을 구하는 프로그램을 작성하시오.
첫째 줄에 N의 진짜 약수의 개수가 주어진다. 이 개수는 50보다 작거나 같은 자연수이다. 둘째 줄에는 N의 진짜 약수가 주어진다. 1,000,000보다 작거나 같고, 2보다 크거나 같은 자연수이고, 중복되지 않는다.
예시 -
2
4 2
첫째 줄에 N을 출력한다. N은 항상 32비트 부호있는 정수로 표현할 수 있다.
예시 - 8
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
int[] arr = new int[num];
for( int i = 0 ; i < num ; i++) {
arr[i] = sc.nextInt();
}
System.out.println(divisorNum(arr, num));
}
static int divisorNum(int[] arr, int num) {
int Max = 0, Min = arr[0] ;
for( int i = 0 ; i < num ; i++ ) {
if( arr[i] > Max) Max = arr[i];
if( arr[i] < Min) Min = arr[i];
}
return Max*Min;
}
}
숫자 12를 예로 들어보면, 12의 약수는 1, 2, 3, 4, 6, 12이고,
문제에서 말하는 '진짜 약수'는 2, 3, 4, 6이고 진짜 약수의 갯수는 4이다.
즉 입력이
4
2 3 4 6 일 것이다.
이때 진쨔 약수로 숫자를 구하는 방법은 가장 작은 진짜 약수와 가장 큰 진짜 약수를 곱하면 된다.
따라서 입력으로 받는 모든 진짜 약수들 중 Min값과 Max값을 찾아 곱하여 리턴한다.