generated from nhcarrigan/template
This commit is contained in:
@@ -0,0 +1,18 @@
|
||||
/**
|
||||
* @copyright NHCarrigan
|
||||
* @license Naomi's Public License
|
||||
* @author Naomi Carrigan
|
||||
*/
|
||||
|
||||
import { describe, it, expect } from "vitest";
|
||||
import { lcm } from "./main.js";
|
||||
|
||||
describe("lcm", () => {
|
||||
it("should return the correct LCM", () => {
|
||||
expect(lcm(4, 6)).toBe(12);
|
||||
expect(lcm(9, 6)).toBe(18);
|
||||
expect(lcm(10, 100)).toBe(100);
|
||||
expect(lcm(13, 17)).toBe(221);
|
||||
expect(lcm(45, 70)).toBe(630);
|
||||
});
|
||||
});
|
||||
@@ -0,0 +1,20 @@
|
||||
/**
|
||||
* @copyright NHCarrigan
|
||||
* @license Naomi's Public License
|
||||
* @author Naomi Carrigan
|
||||
*/
|
||||
|
||||
const gcd = (firstNumber: number, secondNumber: number): number => {
|
||||
return secondNumber === 0 ? firstNumber : gcd(secondNumber, firstNumber % secondNumber);
|
||||
};
|
||||
|
||||
/**
|
||||
* Given two integers, return the least common multiple (LCM) of the two numbers.
|
||||
* @param firstNumber - The first integer.
|
||||
* @param secondNumber - The second integer.
|
||||
* @returns The least common multiple (LCM) of the two numbers.
|
||||
* @see https://www.freecodecamp.org/learn/daily-coding-challenge/2025-11-21
|
||||
*/
|
||||
export const lcm = (firstNumber: number, secondNumber: number): number => {
|
||||
return (firstNumber * secondNumber) / gcd(firstNumber, secondNumber);
|
||||
}
|
||||
Reference in New Issue
Block a user