Jump to content

Perfect numbers: Difference between revisions

Line 981:
<lang JavaScript>(function (nFrom, nTo) {
 
// MONADIC CHAIN (bind) IN LIEU OF FILTER
// ( monadic return for lists is just lambda x -> [x] )
 
return chain(
rng(nFrom, nTo),
 
function (x) {
return (
function perfect(n) {
return chain(
rng(1, Math.floor(Math.sqrt(n))),
function (y) {
returnfunction (n % y) === 0 && n > 1 ? [y, n / y] : [];{
return (n % y) === 0 && n > 1 }? [y, n / y] : [];
).reduce(function (a, x) {}
).reduce(function return (a, +x) x;{
return a + }, 0) / 2 === nx;
}, 0) / 2 === }n;
)(x) ? [x] : [];
}
)(x) ? [x] : [];
}
);
 
/******************************************************************/
 
// Monadic bind (chain) for lists
function chain(xs, f) {
return [].concat.apply([], xs.map(f));
}
 
function rng(m, n) {
return Array.apply(null, Array(n - m + 1)).map(function (x, i) {
return m + i;
});
}
 
})(1, 10000);</lang>
9,659

edits

Cookies help us deliver our services. By using our services, you agree to our use of cookies.