---
id: 5ea281203167d2b0bdefca00
title: Números lúdicos
challengeType: 5
forumTopicId: 385282
dashedName: ludic-numbers
---
# --description--
[Números lúdicos](https://oeis.org/wiki/Ludic_numbers) têm a ver com números primos conforme eles são gerados por uma peneira, do mesmo modo como a [Peneira de Eratóstenes](https://rosettacode.org/wiki/Sieve_of_Eratosthenes) é usada para gerar números primos.
O primeiro número lúdico é 1.
Para gerar os próximos números lúdicos, crie um array de números inteiros crescentes a partir do 2.
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 ...
(Gere o laço)
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 ...
3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 ...
5 7 11 13 17 19 23 25 29 31 35 37 41 43 47 49 53 55 59 61 65 67 71 73 77 ...
7 11 13 17 23 25 29 31 37 41 43 47 53 55 59 61 67 71 73 77 83 85 89 91 97 ...
ludic
should be a function.');
```
`ludic(2)` deve retornar um array.
```js
assert(Array.isArray(ludic(2)));
```
`ludic(2)` deve retornar `[1, 2]`.
```js
assert.deepEqual(ludic(2), [1, 2]);
```
`ludic(3)` deve retornar `[1, 2, 3]`.
```js
assert.deepEqual(ludic(3), [1, 2, 3]);
```
`ludic(5)` deve retornar `[1, 2, 3, 5]`.
```js
assert.deepEqual(ludic(5), [1, 2, 3, 5]);
```
`ludic(20)` deve retornar `[1, 2, 3, 5, 7, 11, 13, 17]`.
```js
assert.deepEqual(ludic(20), [1, 2, 3, 5, 7, 11, 13, 17]);
```
`ludic(26)` deve retornar `[1, 2, 3, 5, 7, 11, 13, 17, 23, 25]`.
```js
assert.deepEqual(ludic(26), [1, 2, 3, 5, 7, 11, 13, 17, 23, 25]);
```
# --seed--
## --seed-contents--
```js
function ludic(n) {
}
```
# --solutions--
```js
function ludic(n) {
const makeArr = (s, e) => new Array(e + 1 - s).fill(s).map((e, i) => e + i);
const filterAtInc = (arr, n) => arr.filter((e, i) => (i + 1) % n);
const makeLudic = (arr, result) => {
const iter = arr.shift();
result.push(iter);
return arr.length ? makeLudic(filterAtInc(arr, iter), result) : result;
};
const ludicResult = makeLudic(makeArr(2, n), [1]);
return ludicResult;
}
```