문제

두 개의 자연수를 입력받아 최대 공약수와 최소 공배수를 출력하는 프로그램을 작성하시오.

 

입력

첫째 줄에는 두 개의 자연수가 주어진다. 이 둘은 10,000이하의 자연수이며 사이에 한 칸의 공백이 주어진다.

 

입출력 예시

 

해결

const fs = require('fs');
const { start } = require('repl');
const stdin = (process.platform === 'linux'
    ? fs.readFileSync('/dev/stdin').toString()
    : `24 18` 
).match(/[^\r\n]+/g);

const input = (() => {
  let line = 0;
  return () => stdin[line++];
})();

const s = input().split(' ').map(Number)

const solution = (n,m) => {
  const gcd = (a,b) => {
    if (b === 0) return a;
    return gcd(b, a%b)
  }

  const lcm = (a,b) => a*b / gcd(a,b);

  console.log(gcd(n,m))
  console.log(lcm(n,m))
  return;
}

solution (s[0],s[1])

+ Recent posts