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 …
3y ago
[Python 3], 80 77 75 72 bytes …
3y ago
[Sclipting], (UTF-16) 58 52 by …
3y 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