본문 바로가기

백준문제풀이

백준 1037 자바(java) 약수

문제

양수 A가 N의 진짜 약수가 되려면, N이 A의 배수이고, A가 1과 N이 아니어야 한다. 어떤 수 N의 진짜 약수가 모두 주어질 때, N을 구하는 프로그램을 작성하시오.

입력

첫째 줄에 N의 진짜 약수의 개수가 주어진다. 이 개수는 50보다 작거나 같은 자연수이다. 둘째 줄에는 N의 진짜 약수가 주어진다. 1,000,000보다 작거나 같고, 2보다 크거나 같은 자연수이고, 중복되지 않는다.

출력

첫째 줄에 N을 출력한다. N은 항상 32비트 부호있는 정수로 표현할 수 있다.

 

 

import java.util.Arrays;
import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int [] arr = new int[n];
		for(int i = 0; i<arr.length ;i++) {
			arr[i] = sc.nextInt();
		}
		Arrays.sort(arr);
		System.out.println(arr[0]*arr[n-1]);
	}
}

짝수일경우 2가 항상 포함되므로 2* 마지막 인덱스, 홀수일경우 가장 첫번째와 마지막 인덱스를 곱하면 되어 if/else 로 구현하였다가 가만히 생각해보니 짝수나 홀수나 결국 같은 방식이었다.

그냥 정렬 후 첫 인덱스와 마지막 인덱스를 곱해주면 끝