/** @param {number} i * @param {number} n * @returns {number} product of i to n */ export function product(i, n) { if (n < i) { return 1; } if (n === i) { return n; } var half = n + i >> 1; // divide (n + i) by 2 and truncate to integer return product(i, half) * product(half + 1, n); }