Chúng ta cần viết một hàm JavaScript nhận vào một số n. Hàm nên tìm và trả về số nhỏ nhất chính xác chia hết cho tất cả các số từ 1 đến n.
Ví dụ
Code sau đây:
const smallestDivisible = (num) => {
let i, n = 1;
const largestPower = (n, num) => {
let p, e = 2, largest = n;
while ((p = Math.pow(n, e)) <= num) { largest = p; e += 1; }
return largest;
};
const isPrime = n => {
let i, num = Math.ceil(Math.sqrt(n));
for (i = 3; i <= num; i += 2) { if (n % i === 0) return false; }
return true;
};
for (i = 3; i <= num; i += 2) {
if (isPrime(i)) n *= largestPower(i, num);
}
return n * largestPower(2, num);
};
console.log(smallestDivisible(20));Kết quả
Kết quả trên console:
232792560