μ©μ΄ μκ³ κ°κΈ°
β’
μ½μ : μ΄λ€ μλ₯Ό λλμ΄ λ¨μ΄μ§κ² νλ μ
β’
λ°°μ : μ΄λ€ μμ 1, 2, 3, ...n λ°°νμ¬ μ»λ μ
β’
곡μ½μ : λ μ΄μμ μμ κ³΅ν΅ μ½μ
β’
곡배μ : λ μ΄μμ μμ κ³΅ν΅ λ°°μ
β’
μ΅λ 곡μ½μ : λ μ΄μμ 곡μ½μ μ€ μ΅λμΈ μ
β’
μ΅μ 곡배μ : λ μ΄μμ 곡배μ μ€ μ΅μμΈ μ
μ½μ ꡬνκΈ°
nμ μ½μλ₯Ό ꡬνλ €λ©΄ μ΄λ»κ² ν΄μΌν κΉ?
μ½κ² μκ°ν΄λ³Έλ€λ©΄ nμ 1λΆν° nκΉμ§μ μλ‘ νλ²μ© λλ μ νμΈν΄λ³Ό μ μλ€.
function getDivisor(n) {
const result = [];
for (let i = 1; i < n; i++) {
if (n % i === 0) result.append(i);
}
return result;
}
JavaScript
볡μ¬
μμ κ°μ λ°©λ²λ μμ§λ§ λ ν¨μ¨μ μΌλ‘ ꡬνλ λ°©λ²μ μκ°ν΄λ³΄μ
μμμ μμ°μ Nμ μ½μλ€ μ€μμ λ μ½μμ κ³±μ΄ Nμ΄ λλ μ½μ Aμ μ½μ Bλ λ°λμ μ‘΄μ¬νλ€
β μμ°μ Nμ μ κ³±κ·ΌκΉμ§μ μ½μλ₯Ό ꡬνλ©΄ κ·Έ μ§μ΄ λλ μ½μλ μλμΌλ‘ ꡬν΄μ§λ€.
function getDivisor(n) {
const result = [];
const resultBack = [];
for (let i = 1; i < n ** (1 / 2); i++) {
if (n % i === 0) {
result.push(i);
if (i * i !== n) result.unshift(n / i);
}
}
return result.concat(resultBack);
}
JavaScript
볡μ¬
μ μ½λλ O()μ μκ°λ³΅μ‘λλ₯Ό κ°μ§
GCD μ΅λ 곡μ½μ
Greatest Common Divisor
λ μ΄μμ 곡μ½μ μ€, μ΅λμΈ μ
μ ν΄λ¦¬λ νΈμ λ²
aλ₯Ό bλ‘ λλ λλ¨Έμ§λ₯Ό rμ΄λΌκ³ νλ€λ©΄
aμ bμ μ΅λ곡μ½μμ bμ rμ μ΅λ곡μ½μκ° κ°κ³ rμ΄ 0μΌ λμ bκ° μ΅λ곡μ½μμ΄λ€.
GCD(a, b) = GCD(b, a % b)
λ°λΌμ μλμ κ°μ΄ μ½λλ₯Ό μμ±ν μ μλ€.
let getGCD = (a, b) => (b > 0 ? getGCD(b, a % b) : a);
JavaScript
볡μ¬
a < b μ΄λλΌλ getGCB(a, a % b = a) μ΄λ―λ‘ μλ μ€μλλ€.
LCM μ΅μ 곡배μ
Least Common Multiple
λ μ΄μμ 곡배μ μ€, μ΅μμΈ μ
μ΅μ 곡배μλ μ΅λ 곡μ½μλ₯Ό μ¬μ©ν΄μ ꡬν μ μλ€.
a * b = gcd(a, b) * lcm(a, b) μ΄λ―λ‘
β lcm(a, b) = (a * b) / gcd(a, b)
let getGCD = (a, b) => (b > 0 ? getGCD(b, a % b) : a);
let getLCM = (a, b, gcd) => (a * b) / gcd;
const solution = (a, b) => {
let gcd = getGCD(a, b);
return getLCM(a, b, gcd);
}
JavaScript
볡μ¬