Skip to content

Instantly share code, notes, and snippets.

@joshuakemmerling
Last active May 21, 2018 04:09
Show Gist options
  • Save joshuakemmerling/ef236d047758c85ac6d69e9fee71ad44 to your computer and use it in GitHub Desktop.
Save joshuakemmerling/ef236d047758c85ac6d69e9fee71ad44 to your computer and use it in GitHub Desktop.
Get hamming numbers
const getNthHamming = n => getHammingNumbers(n).reverse()[0]
const getHammingNumbers = n => {
let numbers = []
let next = 1
while (numbers.length < n) {
if (isHammingNumber(next))
numbers.push(next)
next++
}
return numbers
}
const isHammingNumber = num => {
while (num % 5 === 0) num /= 5
while (num % 3 === 0) num /= 3
while (num % 2 === 0) num /= 2
return num === 1
}
console.log(getHammingNumbers(20))
console.log(getNthHamming(20))
console.log(isHammingNumber(9))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment