# The Ludic Numbers

The Ludic Numbers are a sequence that pops up when you apply the sieve of eratosthenes to the natural numbers, completely removing the numbers every iteration.

Here is how they are generated:

The Ludic numbers start with the lists:

```
l = [1]
n = [2,3,4,5,6,7,8,9,10....]
```

Every iteration, we take the first element `x`

in `n`

, add it to the list, and remove every `x`

th number in `n`

, including `x`

.

```
l = [1,2]
n = [3,5,7,9,11,...]
```

By repeating this process an infinite number of times, we can get the full list of Ludic numbers.

# Challenge

For this sequence, you can

- Take an index $n$ and output the $n^{th}$ term, either 0 or 1 indexed.
- Take a positive integer $n$ and output the first $n$ terms.
- Output the whole sequence as an infinite list.

# Testcases

```
1 1
2 2
3 3
4 5
5 7
6 11
7 13
8 17
9 23
10 25
11 29
12 37
13 41
14 43
15 47
16 53
```

The first 56 values can be seen here: A003309.

Reference implementations can be found at Rosetta Code.

# Scoring

This is code-golf. Shortest answer in every language wins.

[Haskell], 51 49 bytes -2 b …

2y ago

[Python 3], 80 77 75 72 bytes …

2y ago

[Sclipting], (UTF-16) 58 52 by …

2y ago

## 3 answers

#
Haskell, ~~51~~ 49 bytes

-2 bytes thanks to Wheat Wizard

```
1:g[2..]
g(a:b)=a:g[d|(c,d)<-zip[1..]b,c`mod`a>0]
```

#
Sclipting, (UTF-16) ~~58~~ 52 bytes

```
가匱❸增平갠下氫終要鈮貶⓶梴감⓶上❸乘殲終終并鈮掘增
```

Gives the nth ludic number, 0-indexed.

```
가
Start list of Ludics with 0
匱❹增平갠下氫終
Create a list of numbers from 2 to n+1 squared
要
While the list is truthy
鈮
Retrieve the Ludic number x (the first element)
貶
Decrement x
⓶梴감⓶上
For i = 1 up to the length of the list
❸乘殲
Remove the number at index x * i
終
End loop
終
End loop
并鈮掘增
Get the nth item from the list of Ludics and increment
```

## 0 comment threads