Съвети за JavaScript

Как да изчислим най-малкото общо кратно в JavaScript

Въведение в LCM и как да го внедрите в JavaScript

Проблемът днес е за изчисляване на най-малкото общо кратно на набор от числа. В математиката най-малкото общо кратно на две цели положителни числа a и b, означено с LCM(a,b), е най-малкото естествено число, което се дели както на a, така и на b. Но нека започнем с дефиницията на проблема:

Проблемът: Най-малкото общо кратно

връзка към kata

Напишете функция, която изчислява най-малкото общо кратно на своите аргументи; всеки аргумент се приема за неотрицателно цяло число. В случай, че няма аргументи (или предоставеният масив в компилирани езици е празен), върнете 1. Ако някой аргумент е 0, върнете 0.

Решението

За да реша проблема, мога да следвам инструкциите в Wikipedia:

По същество това е въпрос на използване на най-големия общ делител. Но как се изчислява най-големият общ делител? Говорих за това преди няколко дни в друга публикация:



const gcd = (x, y) => (y === 0 ? x : gcd(y, x % y));

Следователно проблемът за изчисляване на най-малкото общо кратно в JavaScript може да бъде решен само в два реда:

const gcd = (x, y) => (y === 0 ? x : gcd(y, x % y));

const lcm = (...n) => n.reduce((x, y) => (x * y) / gcd(x, y));

Благодаря за четенето! Очаквайте още.

Не пропускайте следващата ми статия — регистрирайте се за моя среден имейл списък



Повече съдържание в PlainEnglish.io.

Регистрирайте се за нашия безплатен седмичен бюлетин. Следвайте ни в Twitter, LinkedIn, YouTube и Discord.

Искате да мащабирате стартирането на своя софтуер? Вижте Circuit.