Baekjoon

[백준1037] 약수 / Java

개발하는 사막여우 2021. 2. 17. 11:16
반응형

문제주소 :www.acmicpc.net/problem/1037

 

1037번: 약수

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

www.acmicpc.net


<문제 설명>

더보기

문제

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

입력

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

출력

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

예제 입력 1

2
4 2

예제 출력 1

8

 

<풀이법>

▒ 한줄 개념: 약수 ▒ 

약수의 개념을 이해하면 아주 쉬운 문제입니다.

단순하게 주어진 진짜 약수의 최솟값과 최댓값을 곱하면 됩니다.

N = 20의 경우,

20의 진짜 약수 : 2, 4, 5, 10

따라서 최솟값 2와 최댓값 10을 곱하면 N인 20을 얻을 수 있습니다.

 

 

<코드(Java)>

package Baekjoon;

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

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

 

 

더 많은 코드 보기(GitHub) : github.com/dwkim-97/CodingTest

 

 

반응형