# Fascinating Number

Given a number N, the task is to check whether it is fascinating or not.
Fascinating Number: When a number( 3 digits or more ) is multiplied by 2 and 3, and when both these products are concatenated with the original number, then it results in all digits from 1 to 9 present exactly once. There could be any number of zeros and are ignored.

Examples:

Input: 192
Output: Yes
After multiplication with 2 and 3, and concatenating with original number, resultant number is 192384576 which contains all digits from 1 to 9.

Input: 853
Output: No
After multiplication with 2 and 3, and concatenating with original number, the resultant number is 85317062559. In this, number 4 is missing and the number 5 has appeared multiple times.

## Recommended: Please solve it on “PRACTICE ” first, before moving on to the solution.

Approach:

1. Check if the given number has three digits or more. If not, print No.
2. Else, Multiply the given number with 2 and 3.
3. Concatenate these products with the given number to form a string.
4. Traverse this string, keep the frequency count of the digits.
5. Print No if any digit is missing or has appeared multiple times.
6. Else, print Yes.

Below is the implementation of above approach:

## C++

 `// C++ program to implement  ` `// fascinating number ` `#include ` `using` `namespace` `std; ` ` `  `// function to check if number ` `// is fascinating or not ` `bool` `isFascinating(``int` `num) ` `{ ` `    ``// frequency count array  ` `    ``// using 1 indexing ` `    ``int` `freq = {0}; ` ` `  `    ``// obtaining the resultant number ` `    ``// using string concatenation ` `    ``string val = ``""` `+ to_string(num) +  ` `                      ``to_string(num * 2) +  ` `                      ``to_string(num * 3); ` ` `  `    ``// Traversing the string  ` `    ``// character by character ` `    ``for` `(``int` `i = 0; i < val.length(); i++)  ` `    ``{ ` ` `  `        ``// gives integer value of  ` `        ``// a character digit ` `        ``int` `digit = val[i] - ``'0'``; ` ` `  `        ``// To check if any digit has ` `        ``// appeared multiple times ` `        ``if` `(freq[digit] > 0) ` `            ``return` `false``; ` `        ``else` `            ``freq[digit]++; ` `    ``} ` ` `  `    ``// Traversing through freq array to ` `    ``// check if any digit was missing ` `    ``for` `(``int` `i = 1; i < 10; i++)  ` `    ``{ ` `        ``if` `(freq[i] == 0) ` `            ``return` `false``; ` `    ``} ` `    ``return` `true``; ` `} ` ` `  `// Driver code ` `int` `main() ` `{ ` `    ``// Input number ` `    ``int` `num = 192; ` ` `  `    ``// Not a valid number ` `    ``if` `(num < 100) ` `        ``cout << ``"No"` `<< endl; ` ` `  `    ``else`  `    ``{ ` `        ``// Calling the function to  ` `        ``// check if input number  ` `        ``// is fascinating or not ` `        ``bool` `ans = isFascinating(num); ` `        ``if` `(ans) ` `            ``cout << ``"Yes"``; ` `        ``else` `            ``cout << ``"No"``; ` `    ``} ` `} ` ` `  `// This code is contributed  ` `// by Subhadeep `

## Java

 `// Java program to implement fascinating number ` `import` `java.io.*; ` `import` `java.util.*; ` ` `  `public` `class` `GFG { ` ` `  `    ``// function to check if number is fascinating or not ` `    ``public` `static` `boolean` `isFascinating(``int` `num) ` `    ``{ ` `        ``// frequency count array using 1 indexing ` `        ``int``[] freq = ``new` `int``[``10``]; ` ` `  `        ``// obtaining the resultant number ` `        ``// using string concatenation ` `        ``String val = ``""` `+ num + num * ``2` `+ num * ``3``; ` ` `  `        ``// Traversing the string character by character ` `        ``for` `(``int` `i = ``0``; i < val.length(); i++) { ` ` `  `            ``// gives integer value of a character digit ` `            ``int` `digit = val.charAt(i) - ``'0'``; ` ` `  `            ``// To check if any digit has ` `            ``// appeared multiple times ` `            ``if` `(freq[digit] > ``0``) ` `                ``return` `false``; ` `            ``else` `                ``freq[digit]++; ` `        ``} ` ` `  `        ``// Traversing through freq array to ` `        ``// check if any digit was missing ` `        ``for` `(``int` `i = ``1``; i < freq.length; i++) { ` `            ``if` `(freq[i] == ``0``) ` `                ``return` `false``; ` `        ``} ` `        ``return` `true``; ` `    ``} ` ` `  `    ``// Driver code ` `    ``public` `static` `void` `main(String args[]) ` `    ``{ ` `        ``// Input number ` `        ``int` `num = ``192``; ` ` `  `        ``// Not a valid number ` `        ``if` `(num < ``100``) ` `            ``System.out.println(``"No"``); ` ` `  `        ``else` `{ ` `            ``// Calling the function to check ` `            ``// if input number is fascinating or not ` `            ``boolean` `ans = isFascinating(num); ` `            ``if` `(ans) ` `                ``System.out.println(``"Yes"``); ` `            ``else` `                ``System.out.println(``"No"``); ` `        ``} ` `    ``} ` `} `

## Python 3

 `# Python 3 program to implement  ` `# fascinating number ` ` `  `# function to check if number  ` `# is fascinating or not  ` `def` `isFascinating(num) : ` ` `  `    ``# frequency count array  ` `    ``# using 1 indexing ` `    ``freq ``=` `[``0``] ``*` `10` ` `  `    ``# obtaining the resultant number  ` `    ``# using string concatenation  ` `    ``val ``=` `(``str``(num) ``+` `str``(num ``*` `2``) ``+`  `                      ``str``(num ``*` `3``)) ` ` `  `    ``# Traversing the string  ` `    ``# character by character  ` `    ``for` `i ``in` `range``(``len``(val)) : ` ` `  `        ``# gives integer value of  ` `        ``# a character digit  ` `        ``digit ``=` `int``(val[i]) ` ` `  `        ``# To check if any digit has  ` `        ``# appeared multiple times  ` `        ``if` `freq[digit] > ``0` `: ` `            ``return` `False` `        ``else` `: ` `            ``freq[digit] ``+``=` `1` ` `  `    ``# Traversing through freq array to  ` `    ``# check if any digit was missing  ` `    ``for` `i ``in` `range``(``1``, ``10``) : ` ` `  `        ``if` `freq[i] ``=``=` `0` `: ` `            ``return` `False` ` `  `    ``return` `True` ` `  `# Driver Code ` `if` `__name__ ``=``=` `"__main__"` `: ` ` `  `    ``# Input number  ` `    ``num ``=` `192` ` `  `    ``# Not a valid number ` `    ``if` `num < ``100` `: ` `        ``print``(``"No"``) ` ` `  `    ``else` `: ` `         `  `        ``# Calling the function to  ` `        ``# check if input number  ` `        ``# is fascinating or not  ` `        ``ans ``=` `isFascinating(num) ` `         `  `        ``if` `ans : ` `            ``print``(``"Yes"``) ` `        ``else` `: ` `            ``print``(``"No"``) ` ` `  `# This code is contributed by ANKITRAI1 `

## C#

 `// C# program to implement ` `// fascinating number ` `using` `System; ` ` `  `class` `GFG  ` `{ ` ` `  `// function to check if number ` `// is fascinating or not ` `public` `static` `bool` `isFascinating(``int` `num) ` `{ ` `    ``// frequency count array ` `    ``// using 1 indexing ` `    ``int``[] freq = ``new` `int``; ` ` `  `    ``// obtaining the resultant number ` `    ``// using string concatenation ` `    ``String val = ``""` `+ num.ToString() +  ` `                     ``(num * 2).ToString() +  ` `                     ``(num * 3).ToString(); ` ` `  `    ``// Traversing the string  ` `    ``// character by character ` `    ``for` `(``int` `i = 0; i < val.Length; i++)  ` `    ``{ ` ` `  `        ``// gives integer value of ` `        ``// a character digit ` `        ``int` `digit = val[i] - ``'0'``; ` ` `  `        ``// To check if any digit has ` `        ``// appeared multiple times ` `        ``if` `(freq[digit] > 0) ` `            ``return` `false``; ` `        ``else` `            ``freq[digit]++; ` `    ``} ` ` `  `    ``// Traversing through freq array to ` `    ``// check if any digit was missing ` `    ``for` `(``int` `i = 1; i < freq.Length; i++) ` `    ``{ ` `        ``if` `(freq[i] == 0) ` `            ``return` `false``; ` `    ``} ` `    ``return` `true``; ` `} ` ` `  `// Driver code ` `static` `void` `Main() ` `{ ` `    ``// Input number ` `    ``int` `num = 192; ` ` `  `    ``// Not a valid number ` `    ``if` `(num < 100) ` `        ``Console.WriteLine(``"No"``); ` ` `  `    ``else` `    ``{ ` `        ``// Calling the function to check ` `        ``// if input number is fascinating or not ` `        ``bool` `ans = isFascinating(num); ` `        ``if` `(ans) ` `            ``Console.WriteLine(``"Yes"``); ` `        ``else` `            ``Console.WriteLine(``"No"``); ` `    ``} ` `} ` `} ` ` `  `// This code is contributed by mits `

## PHP

 ` 0) ` `            ``return` `false; ` `        ``else` `            ``\$freq``[``\$digit``]++; ` `    ``} ` ` `  `    ``// Traversing through freq array to ` `    ``// check if any digit was missing ` `    ``for` `(``\$i` `= 1; ``\$i` `< 10; ``\$i``++)  ` `    ``{ ` `        ``if` `(``\$freq``[``\$i``] == 0) ` `            ``return` `false; ` `    ``} ` `    ``return` `true; ` `} ` ` `  `// Driver code ` ` `  `// Input number ` `\$num` `= 192; ` ` `  `// Not a valid number ` `if` `(``\$num` `< 100) ` `    ``echo` `"No"` `; ` ` `  `else` `{ ` `    ``// Calling the function to  ` `    ``// check if input number  ` `    ``// is fascinating or not ` `    ``\$ans` `= isFascinating(``\$num``); ` `    ``if` `(``\$ans``) ` `        ``echo` `"Yes"``; ` `    ``else` `        ``echo` `"No"``; ` `} ` ` `  `// This code is contributed  ` `// by ChitraNayal ` `?> `

Output:

```Yes
```

My Personal Notes arrow_drop_up Check out this Author's contributed articles.

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.