// trying to solve http://www.theguardian.com/science/alexs-adventures-in-numberland/2015/may/20/can-you-do-the-maths-puzzle-for-vietnamese-eight-year-olds-that-has-stumped-parents-and-teachers function perms(xs){ var r=[]; if (!xs.length) return [[]] for (var i=0;i<xs.length;i++){ var xs_ = xs.slice(); var x = xs_.splice(i, 1); var ps = perms(xs_); for (var j=0; j<ps.length;j++) r.push(x.concat(ps[j])) } return r; } /* perms [] = [[]] perms xs = [ x:ps | x <- xs , ps <- perms ( xs\\[x] ) ] */ function snake(a){ return a[0]+a[3]-a[5] + 13*a[1]/a[2] + a[6]*a[7]/a[8] + 12*a[4] } var solutions=[]; var as=perms([1,2,3,4,5,6,7,8,9]); for (var i=0;i<as.length;i++){ if(snake(as[i])==87) solutions.push(as[i]) } document.body.innerHTML = solutions.join('<br>')