https://www.acmicpc.net/problem/1037
1. 아이디어
약수의 특성을 활용하면 간단하게 해결할 수 있다.
2. 문제풀이
특정 자연수의 약수를 크기 순으로 나열했을 때 가장 큰 약수와 가장 작은 약수의 곱, 혹은 두 번째로 큰 약수와 두 번째로 작은 약수의 곱 모두 원래 자연수가 되는 점을 활용하면 된다.
3. 코드
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
int N = Integer.parseInt(br.readLine());
int[] arr = new int[N];
st = new StringTokenizer(br.readLine());
for (int i = 0; i < N; i++) {
arr[i] = Integer.parseInt(st.nextToken());
}
Arrays.sort(arr);
System.out.println(arr[0] * arr[N - 1]);
}
}
4. 후기
'코딩테스트 준비 > 백준' 카테고리의 다른 글
[백준] 12779번 - 상품 is 뭔들 [Java] (0) | 2024.12.03 |
---|---|
[백준] 9506번 - 약수들의 합 [Java] (0) | 2024.12.03 |
[백준] 2312번 - 수 복원하기 [Java] (0) | 2024.12.03 |
[백준] 5347번 - LCM [Java] (0) | 2024.12.03 |
[백준] 13241번 - 최소공배수 [Java] (0) | 2024.12.03 |