반응형
백준 1037번 약수 (javascript, node.js)
문제
- 백준 1037번 약수 보러 가기
- 양수 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
예제입력 2
1
2
예제출력 2
4
예제입력 3
6
3 4 2 12 6 8
예제출력 3
24
예제입력 4
14
14 26456 2 28 13228 3307 7 23149 8 6614 46298 56 4 92596
예제출력 4
185192
문제풀이
- N을 구하기 위해서 는 가장 작은 진짜 약수와 가장 큰 진짜 약수를 곱하면 됨
- 문제가 길긴 하지만 크게 신경쓸거 없이 최댓값과 최소값을 구해서 곱해주면 되는 문제
// 1037번 약수
// 가장 작은 진짜 약수와 가장 큰 진짜 약수를 곱하면 N을 구할수 있다.
// 입력 값을 숫자형으로 변경해줘야 최댓값이랑 최소값을 구할 수 있음
const fs = require("fs");
const file = process.platform === "linux" ? "dev/stdin" : "./text.txt";
const input = fs.readFileSync(file).toString().trim().split("\n");
const t = parseInt(input[0]);
let n = 0;
// input[1]을 쪼개서 숫자형으로 변경해줌
const arr = input[1].split(" ").map(Number);
const max = Math.max(...arr);
const min = Math.min(...arr);
n = min * max;
console.log(n);