UNPKG

collatz-series

Version:

calculates a collatz series of integers given a positive integer

20 lines (17 loc) 410 B
function collatz (n) { if (isNaN(n)) throw new Error('n must be a number') if (n < 1) throw new Error('n must greater than or equal to one') var series = [] var i = n while (true) { series.push(i) // Assuming collatz conjecture is true ;) if (i === 1) break i = next(i) } return series } function next (n) { return (n % 2 === 0 ? n / 2 : n * 3 + 1) } module.exports = collatz