[1037] 약수

RudinP·2023년 4월 19일
0

BaekJoon

목록 보기
49/77

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

입력

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

출력

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

생각

예시로 16의 약수를 구해보자.
1 2 4 8 16
이런식으로 양끝단의 페어들끼리 곱하면 원래 수가 된다.
여기서는 1과 자기 자신이 빠지므로
정렬 후 가장 큰 수와 가장 작은 수를 곱하면 된다.

처음 코드

namespace SongE
{
    public class Program
    {
        static void Main(string[] args)
        {
            using var input = new System.IO.StreamReader(Console.OpenStandardInput());
            using var print = new System.IO.StreamWriter(Console.OpenStandardOutput());

            int intInput() => int.Parse(input.ReadLine());
            int[] intsInput() => Array.ConvertAll(input.ReadLine().Split(), s => int.Parse(s));

            int n = intInput();
            int[] nums = intsInput();

            Array.Sort(nums);
            print.WriteLine(nums.First() * nums.Last());
        }
    }
}

profile
곰을 좋아합니다. <a href = "https://github.com/RudinP">github</a>

0개의 댓글