양수 A가 N의 진짜 약수가 되려면, N이 A의 배수이고, A가 1과 N이 아니어야 한다. 어떤 수 N의 진짜 약수가 모두 주어질 때, N을 구하는 프로그램을 작성하시오.
첫째 줄에 N의 진짜 약수의 개수가 주어진다. 이 개수는 50보다 작거나 같은 자연수이다. 둘째 줄에는 N의 진짜 약수가 주어진다. 1,000,000보다 작거나 같고, 2보다 크거나 같은 자연수이고, 중복되지 않는다.
첫째 줄에 N을 출력한다. N은 항상 32비트 부호있는 정수로 표현할 수 있다.
6
3 4 2 12 6 8
24
예를 들어 1과 본인을 제외한 24의 약수는 [ 2, 3, 4, 6, 8, 12 ] 인데, 여기서 24는 양 끝값을 곱해서 얻을 수 있음. (2x12, 3x8, 4x6)
따라서 약수를 배열로 받은 후 이를 정렬하고, 가장 첫번째 값과 마지막 값을 곱해주면 24를 구할 수 있음.
#include <iostream>
#include <algorithm>
using namespace std;
int main(void)
{
int n, arr[51];
cin >> n;
for (int i = 0; i < n; i++)
cin >> arr[i];
sort(arr, arr+n);
cout << arr[0] * arr[n-1] << "\n";
}
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
int[] arr = new int[n];
String[] s = br.readLine().split(" ");
for (int i = 0; i < n; i++)
arr[i] = Integer.parseInt(s[i]);
Arrays.sort(arr);
System.out.println(arr[0] * arr[n-1]);
}
}