Published
Edited
Jan 31, 2018
Insert cell
Insert cell
Insert cell
numberOddFactors = d3.range(0, 121).map(n => {
if (n < 2) return []
return getOddFactors(factor(n))
})
Insert cell
Insert cell
factorialOddFactors = numberOddFactors.map((d, i) => {
return getOddFactors(_.flatten(numberOddFactors.slice(0, i + 1)))
})
Insert cell
Insert cell
getOddFactors(_.flatten(factorialOddFactors))
Insert cell
function factor(n){
var factors = []
for (var i = 2; i <= n; i++){
while (n % i == 0){
n = n / i
factors.push(i)
}
}
return factors
}
Insert cell
function getOddFactors(factors){
return d3.nestBy(factors, d => d)
.filter(d => d.length % 2)
.map(d => d[0])

}
Insert cell
Type JavaScript, then Shift-Enter. Ctrl-space for more options. Arrow ↑/↓ to switch modes.

Insert cell
Insert cell
Insert cell
Insert cell

Purpose-built for displays of data

Observable is your go-to platform for exploring data and creating expressive data visualizations. Use reactive JavaScript notebooks for prototyping and a collaborative canvas for visual data exploration and dashboard creation.
Learn more