# Ludic Numbers

Ludic numbers are obtained by considering list of natural numbers (starting from 2) and removing i-th number in i-th iteration (where i begins with 2). In every iteration, the first removed number is Ludic. 1 is considered as Ludic.

Process of generating Ludic numbers :Ludic = {1, …}

Consider natural numbers from 2,

2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21 …Delete every 2nd number

3, 5, 7, 9, 11, 13, 15, 17, 19, 21 ..

The first deleted number is 2.

Ludic = {1, 2, …}Delete every 3rd number.

5, 7, 11, 13, 17, 19, 22 ..

The first deleted number is 3

Ludic = {1, 2, 3, …}Delete every 4th number.

5, 7, 11, 13, 17, 19, 22 ..

The first deleted number is 5

Ludic = {1, 2, 3, 5, ..}This process continues..

The process is similar to Sieve of Eratosthenes.

Given a number n, print all Ludic numbers smaller than or equal to n.

Examples :

Input : n = 10 Output : 1, 2, 3, 5, 7 Input : n = 25 Output : 1, 2, 3, 5, 7, 11, 13, 17, 23, 25

The idea to print Ludic Numbers is simple. We create a list of size and use above illustrated process. In each iteration, we delete every i-th number, we do not delete the current first number so that we can return it later.

`// Java code to print Lucid number smaller than ` `// or equal to n. ` `import` `java.util.ArrayList; ` `import` `java.util.List; ` ` ` `public` `class` `Ludic { ` ` ` ` ` `// Returns a list containing all Ludic numbers ` ` ` `// smaller than or equal to n. ` ` ` `public` `static` `List<Integer> getLudic(` `int` `n) ` ` ` `{ ` ` ` `// ludics list contain all the ludic numbers ` ` ` `List<Integer> ludics = ` `new` `ArrayList<Integer>(n); ` ` ` `for` `(` `int` `i = ` `1` `; i <= n; i++) ` ` ` `ludics.add(i); ` ` ` ` ` `// Here we have to start with index 1 and will remove nothing ` ` ` `// from the list ` ` ` `for` `(` `int` `index = ` `1` `; index < ludics.size(); index++) { ` ` ` ` ` `// Here first item should be included in the list ` ` ` `// and the deletion is refered by this first item ` ` ` `// in the loop . ` ` ` `int` `first_ludic = ludics.get(index); ` ` ` ` ` `// remove_index variable is used to store ` ` ` `// the next index which we want to delete ` ` ` `int` `remove_index = index + first_ludic; ` ` ` `while` `(remove_index < ludics.size()) { ` ` ` ` ` `// removing the next item ` ` ` `ludics.remove(remove_index); ` ` ` ` ` `// remove_index is updated so that ` ` ` `// we get the next index for deletion ` ` ` `remove_index = remove_index + first_ludic - ` `1` `; ` ` ` `} ` ` ` `} ` ` ` `return` `ludics; ` ` ` `} ` ` ` ` ` `public` `static` `void` `main(String[] srgs) ` ` ` `{ ` ` ` `int` `n = ` `25` `; ` ` ` `System.out.println(getLudic(n)); ` ` ` `} ` `} ` |

*chevron_right*

*filter_none*

Output:

[1, 2, 3, 5, 7, 11, 13, 17, 23, 25]

**References :**

https://oeis.org/wiki/Ludic_numbers

## Recommended Posts:

- Print N lines of 4 numbers such that every pair among 4 numbers has a GCD K
- Numbers less than N which are product of exactly two distinct prime numbers
- Maximum sum of distinct numbers such that LCM of these numbers is N
- Count numbers which can be constructed using two numbers
- Count numbers which are divisible by all the numbers from 2 to 10
- Absolute difference between the Product of Non-Prime numbers and Prime numbers of an Array
- Absolute Difference between the Sum of Non-Prime numbers and Prime numbers of an Array
- Print numbers such that no two consecutive numbers are co-prime and every three consecutive numbers are co-prime
- Sum of first n even numbers
- Add two numbers using ++ and/or --
- Tribonacci Numbers
- Prime Numbers
- Sum of numbers from 1 to N which are divisible by 3 or 4
- Happy Numbers
- Hailstone Numbers

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.