# 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

GeeksforGeeks has prepared a complete interview preparation course with premium videos, theory, practice problems, TA support and many more features. Please refer Placement 100 for details

## Recommended Posts:

- Fill the missing numbers in the array of N natural numbers such that arr[i] not equal to i
- Check if a given pair of Numbers are Betrothed numbers or not
- 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 are divisible by all the numbers from 2 to 10
- Count numbers which can be constructed using two numbers
- Absolute difference between the Product of Non-Prime numbers and Prime numbers of an Array
- Number of ways to obtain each numbers in range [1, b+c] by adding any two numbers in range [a, b] and [b, c]
- 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
- Add two numbers using ++ and/or --
- Sum of first n even numbers
- LCM of N numbers modulo M
- Natural 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.