# Lucky Numbers

Data StructureMathematical ProblemsAlgorithms

Lucky numbers are some special integer numbers. From basic numbers, some special numbers are eliminated by their position. Instead of their value, for their position, the numbers are eliminated. The numbers which are not deleted, they are the lucky numbers.

The number deletion follows some rule. At first, every second number are deleted, after that, all 3rd numbers are deleted and so on.

Here is some example −

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 (1 – 25 all)
1 3 5 7 9 11 13 15 17 19 21 23 25 (deleting all 2nd numbers)
1 3 7 9 13 15 19 21 25 (All 3rd numbers are deleted, starting from 5)
1 3 7 9 13 15 21 25 (All 7th numbers are deleted starting from 19)

## Input and Output

Input: Put a number to check whether it is lucky or not. Let the number is 13 Output: 13 is a lucky number.

## Algorithm

isLuckyNumber(number)

Input − A number.

Output − Check the number is lucky or not.

Begin
counter := 2 (It is static data, not be initialized again in recursion call)
if counter > n, then
return 1
if n mod counter = 0, then
return 0
n := n – (n / counter)
counter := counter + 1
isLuckyNumber(n)
End

## Example

#include <iostream>
using namespace std;

int counter = 2;    //used during recursion

bool isLuckyNumber(int n) {
if(counter > n)
return 1;
if(n%counter == 0)
return 0;

n -= n/counter;    //n will be next position for recursion
counter++;
return isLuckyNumber(n);
}

int main() {
int x = 13;

if(isLuckyNumber(x))
cout << x<<" is a lucky number.";
else
cout << x<<" is not a lucky number.";
}

## Output

13 is a lucky number.
Published on 11-Jul-2018 14:31:13
Advertisements