# C++ Program to check if a given number is Lucky (all digits are different)

Given with a number and the task is to check whether the input number is a lucky number or not and display the result.

### What is a Lucky Number

Lucky number is the number whose each and every digit is different and if at least one digit is repeating than the number will not be considered as a lucky number.

## Example

Input-: n = 1234
Output-: it is a lucky number
Explanation-: As there is no repeating digit in a number n so it is a lucky number
Input-: n = 3434
Output-: it is not a lucky number
Explanation-: In the given number n, 3 and 4 are repeating twice so it is not a lucky number

Approach we are using in the given program is as follows

• Input the number n from the user to check whether it’s a lucky number or not
• Traverse the entire digit till the size of a number
• Mark the digit visited on every visit and check whether it is already found or not
• Display whether the given number is a lucky number or not

## ALGORITHM

Start
Step1-> declare function to check whether a given number is lucky or not
bool check_lucky(int size)
declare bool arr
Loop For int i=0 and i<10 and i++
Set arr[i] = false
End
Loop While(size > 0)
declare int digit = size % 10
IF (arr[digit])
return false
End
set arr[digit] = true
Set size = size/10
End
return true
Step 2-> In main()
Declare int arr[] = {0,34,2345,1249,1232}
calculate int size = sizeof(arr)/sizeof(arr)
Loop For int i=0 and i<size and i++
check_lucky(arr[i])?
print  is Lucky : print is not Lucky
End
Stop

## Example

#include<iostream>
using namespace std;
//return true if a number if lucky.
bool check_lucky(int size) {
bool arr;
for (int i=0; i<10; i++)
arr[i] = false;
while (size > 0) {
int digit = size % 10;
if (arr[digit])
return false;
arr[digit] = true;
size = size/10;
}
return true;
}
int main() {
int arr[] = {0,34,2345,1249,1232};
int size = sizeof(arr)/sizeof(arr);
for (int i=0; i<size; i++)
check_lucky(arr[i])? cout << arr[i] << " is Lucky \n": cout << arr[i] << " is not Lucky \n";
return 0;
}

## Output

19 is Lucky
34 is Lucky
2345 is Lucky
1249 is Lucky
1232 is not Lucky

Updated on: 20-Nov-2019

552 Views 