단계별로 풀어보기 > 심화 2 > 약수
https://www.acmicpc.net/problem/1037
양수 A의 약수의 개수가 주어지고, 1과 본인을 제외한 약수가 주어질 때, 양수 A를 return 하라.

주어진 약수를 배열에 입력 후, 오름차순으로 정렬하여 첫 번째 x 마지막 요소를 한다.
이는 양수 A이므로 해당 값을 return 한다.
import java.io.*;
import java.util.Arrays;
import java.util.StringTokenizer;
public class 약수 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringTokenizer st;
int num = Integer.parseInt(br.readLine());
int[] divisor = new int[num];
st= new StringTokenizer(br.readLine());
for(int i = 0; i<num; i++){
divisor[i] = Integer.parseInt(st.nextToken());
}
Arrays.sort(divisor);
int N = divisor[0] * divisor[num-1];
bw.write(String.valueOf(N));
bw.flush();
bw.close();
br.close();
}
}
Review
import java.io.*;
import java.util.Arrays;
import java.util.StringTokenizer;
public class 약수_review {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringTokenizer st;
int count = Integer.parseInt(br.readLine());
int[] num = new int[count];
st = new StringTokenizer(br.readLine());
for (int i = 0; i<count; i++){
num[i] = Integer.parseInt(st.nextToken());
}
Arrays.sort(num);
bw.write(String.valueOf(num[0] * num[num.length -1]));
bw.flush();
bw.close();
br.close();
}
}
처음에 오름차순 정렬을 안해서 예제 입력 3,4에서 이상한 값이 나왔었다.
