Algorithm_javascript/15. 약수, 배수와소수2

백준 13241번 최소공배수 (javascript, node.js)

luminouswy 2023. 5. 24. 14:41
반응형

 

백준 13241번 최소공배수 (javascript, node.js)

문제

 

13241번: 최소공배수

정수 B에 0보다 큰 정수인 N을 곱해 정수 A를 만들 수 있다면, A는 B의 배수이다. 예: 10은 5의 배수이다 (5*2 = 10) 10은 10의 배수이다(10*1 = 10) 6은 1의 배수이다(1*6 = 6) 20은 1, 2, 4,5,10,20의 배수이다. 다

www.acmicpc.net


문제풀이

  • 1934번의 최소공배수와 거의 같다.
  • 그래서 이번에는 구글의 바드를 사용해서 최대공약수(유클리드 호제법)를 구하는 프로그램을 구현해 보았다.
  • 차이점은 구글의 바드는 재귀함수를 사용하였다.

https://luminouswy.tistory.com/entry/%EB%B0%B1%EC%A4%80-1934%EB%B2%88-%EC%B5%9C%EC%86%8C%EA%B3%B5%EB%B0%B0%EC%88%98-javascript-nodejs

 

백준 1934번 최소공배수 (javascript, node.js)

HTML 삽입 미리보기할 수 없는 소스 문제 두 자연수 A와 B에 대해서, A의 배수이면서 B의 배수인 자연수를 A와 B의 공배수라고 한다. 이런 공배수 중에서 가장 작은 수를 최소공배수라고 한다. 예를

luminouswy.tistory.com

// 13241번
// 최소공배수

const fs = require("fs");
const file = process.platform === "linux" ? "dev/stdin" : "./text.txt";
const [a, b] = fs.readFileSync(file).toString().trim().split(" ");

function lcm(a, b) {
  return (a * b) / gcd(a, b);
}

// 이건 구글 바드를 이용해서 구현
// 쳇 gpt랑 다르게 재귀함수를 이용
function gcd(a, b) {
  if (b === 0) {
    return a;
  } else {
    //재귀 호출 b가 0이되어야 종료됨
    return gcd(b, a % b);
  }
}

console.log(lcm(a, b));