Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
21
Task/Perfect-numbers/JavaScript/perfect-numbers-1.js
Normal file
21
Task/Perfect-numbers/JavaScript/perfect-numbers-1.js
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
function is_perfect(n)
|
||||
{
|
||||
var sum = 1, i, sqrt=Math.floor(Math.sqrt(n));
|
||||
for (i = sqrt-1; i>1; i--)
|
||||
{
|
||||
if (n % i == 0) {
|
||||
sum += i + n/i;
|
||||
}
|
||||
}
|
||||
if(n % sqrt == 0)
|
||||
sum += sqrt + (sqrt*sqrt == n ? 0 : n/sqrt);
|
||||
return sum === n;
|
||||
}
|
||||
|
||||
|
||||
var i;
|
||||
for (i = 1; i < 10000; i++)
|
||||
{
|
||||
if (is_perfect(i))
|
||||
print(i);
|
||||
}
|
||||
19
Task/Perfect-numbers/JavaScript/perfect-numbers-2.js
Normal file
19
Task/Perfect-numbers/JavaScript/perfect-numbers-2.js
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
(function (nFrom, nTo) {
|
||||
|
||||
function perfect(n) {
|
||||
return n === range(1, n - 1).reduce(
|
||||
function (a, x) {
|
||||
return n % x ? a : a + x;
|
||||
}, 0
|
||||
);
|
||||
}
|
||||
|
||||
function range(m, n) {
|
||||
return Array.apply(null, Array(n - m + 1)).map(function (x, i) {
|
||||
return m + i;
|
||||
});
|
||||
}
|
||||
|
||||
return range(nFrom, nTo).filter(perfect);
|
||||
|
||||
})(1, 10000);
|
||||
1
Task/Perfect-numbers/JavaScript/perfect-numbers-3.js
Normal file
1
Task/Perfect-numbers/JavaScript/perfect-numbers-3.js
Normal file
|
|
@ -0,0 +1 @@
|
|||
[6, 28, 496, 8128]
|
||||
23
Task/Perfect-numbers/JavaScript/perfect-numbers-4.js
Normal file
23
Task/Perfect-numbers/JavaScript/perfect-numbers-4.js
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
(function (nFrom, nTo) {
|
||||
|
||||
function perfect(n) {
|
||||
var lows = range(1, Math.floor(Math.sqrt(n))).filter(function (x) {
|
||||
return (n % x) === 0;
|
||||
});
|
||||
|
||||
return n > 1 && lows.concat(lows.map(function (x) {
|
||||
return n / x;
|
||||
})).reduce(function (a, x) {
|
||||
return a + x;
|
||||
}, 0) / 2 === n;
|
||||
}
|
||||
|
||||
function range(m, n) {
|
||||
return Array.apply(null, Array(n - m + 1)).map(function (x, i) {
|
||||
return m + i;
|
||||
});
|
||||
}
|
||||
|
||||
return range(nFrom, nTo).filter(perfect)
|
||||
|
||||
})(1, 10000);
|
||||
1
Task/Perfect-numbers/JavaScript/perfect-numbers-5.js
Normal file
1
Task/Perfect-numbers/JavaScript/perfect-numbers-5.js
Normal file
|
|
@ -0,0 +1 @@
|
|||
[6, 28, 496, 8128]
|
||||
35
Task/Perfect-numbers/JavaScript/perfect-numbers-6.js
Normal file
35
Task/Perfect-numbers/JavaScript/perfect-numbers-6.js
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
(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 mPerfect(n) {
|
||||
return (chain(
|
||||
rng(1, Math.floor(Math.sqrt(n))),
|
||||
function (y) {
|
||||
return (n % y) === 0 && n > 1 ? [y, n / y] : [];
|
||||
}
|
||||
).reduce(function (a, x) {
|
||||
return a + x;
|
||||
}, 0) / 2 === n) ? [n] : [];
|
||||
}
|
||||
|
||||
);
|
||||
|
||||
/******************************************************************/
|
||||
|
||||
// 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);
|
||||
1
Task/Perfect-numbers/JavaScript/perfect-numbers-7.js
Normal file
1
Task/Perfect-numbers/JavaScript/perfect-numbers-7.js
Normal file
|
|
@ -0,0 +1 @@
|
|||
[6, 28, 496, 8128]
|
||||
25
Task/Perfect-numbers/JavaScript/perfect-numbers-8.js
Normal file
25
Task/Perfect-numbers/JavaScript/perfect-numbers-8.js
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
(() => {
|
||||
const main = () =>
|
||||
enumFromTo(1, 10000).filter(perfect);
|
||||
|
||||
// perfect :: Int -> Bool
|
||||
const perfect = n => {
|
||||
const
|
||||
lows = enumFromTo(1, Math.floor(Math.sqrt(n)))
|
||||
.filter(x => (n % x) === 0);
|
||||
|
||||
return n > 1 && lows.concat(lows.map(x => n / x))
|
||||
.reduce((a, x) => (a + x), 0) / 2 === n;
|
||||
};
|
||||
|
||||
// GENERIC --------------------------------------------
|
||||
|
||||
// enumFromTo :: Int -> Int -> [Int]
|
||||
const enumFromTo = (m, n) =>
|
||||
Array.from({
|
||||
length: n - m + 1
|
||||
}, (_, i) => i + m)
|
||||
|
||||
// MAIN ---
|
||||
return main();
|
||||
})();
|
||||
1
Task/Perfect-numbers/JavaScript/perfect-numbers-9.js
Normal file
1
Task/Perfect-numbers/JavaScript/perfect-numbers-9.js
Normal file
|
|
@ -0,0 +1 @@
|
|||
[6, 28, 496, 8128]
|
||||
Loading…
Add table
Add a link
Reference in a new issue