RosettaCodeData/Task/Sequence-of-non-squares/JavaScript/sequence-of-non-squares-2.js
2016-12-05 22:15:40 +01:00

36 lines
671 B
JavaScript

(() => {
// nonSquare :: Int -> Int
let nonSquare = n =>
n + floor(1 / 2 + sqrt(n));
// floor :: Num -> Int
let floor = Math.floor,
// sqrt :: Num -> Num
sqrt = Math.sqrt,
// isSquare :: Int -> Bool
isSquare = n => {
let root = sqrt(n);
return root === floor(root);
};
// TEST
return {
first22: Array.from({
length: 22
}, (_, i) => nonSquare(i + 1)),
firstMillionNotSquare: Array.from({
length: 10E6
}, (_, i) => nonSquare(i + 1))
.filter(isSquare)
.length === 0
};
})();