[300]1934号最小公倍数
12224 ワード
1934号最小公倍数
質問する
2つの自然数AとBについて、Aの倍数でありBの倍数である自然数をAとBの公倍数と呼ぶ.この公倍数の中で最小の数を最小公倍数と呼ぶ.例えば、6及び15の公倍数は30、60、90等であり、最小公倍数は30である.
2つの自然数AとBが与えられた場合、AとBの最小公倍数を求めるプログラムを作成してください.
入力
第1行は、試験例の個数T(1≦T≦1000)を与える.2行目からT行にまたがり、AとBが与えられる.(1 ≤ A, B ≤ 45,000)
しゅつりょく
1行目から、T行入力AとBの最小公倍数の順に1行ずつ出力します.
コピー例入力1
3
1 45000
6 10
13 17
コピー例出力1
45000
30
221
コード#コード#
//---- 세팅 ----//
const fs = require('fs');
const stdin = (
process.platform === 'linux'
? fs.readFileSync('/dev/stdin').toString()
: `\
3
1 45000
6 10
13 17
`
).split('\n');
const input = (() => {
let line = 0;
return () => stdin[line++];
})();
//---- 풀이 -----//
const t = Number(input());
const gcd = (a, b) => {
let res = 1;
for (let i = 1; i <= Math.min(a, b); i++) {
if (a % i === 0 && b % i === 0) res = i;
}
return res;
};
const lcm = (a, b) => {
return (a * b) / gcd(a, b);
};
for (let i = 0; i < t; i++) {
const [a, b] = input().split(' ').map(Number);
console.log(lcm(a, b));
}
に答える
リファレンス
最大公約数の概念
A
とB
の共通約数の中で最大の整数である.2
からmin(A, B)
をすべての整数に分割することである.最小公倍数概念
a
、b
の最大公倍数がgcd
の場合、最小公倍数はlcm = gcd * (a/gcd) * (b/gcd)
である.a * b = gcd * lcm
と同じ原理を利用している.lcm = (a*b) / gcd
.function gcd(a, b) {
let res = 1;
for (let i = 1; i <= Math.min(a, b); i++) {
if (a % i === 0 && b % i === 0) res = i;
}
return res;
}
function lcm(a, b) {
return (a * b) / gcd(a, b);
}
console.log(gcd(3, 12), lcm(3, 12)); // 3 12
Reference
この問題について([300]1934号最小公倍数), 我々は、より多くの情報をここで見つけました https://velog.io/@younoah/boj-1934テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol