How To Check Whether a Number Is a Fascinating Number or Not in Java?



What is Fascinating Numbers?

A Fascinating number is a number if the result of concatenation of the (original) number with its multiples of 2 and 3 contains all the digits from 1 to 9.

For example, we have the number 192. Its product with 2 is 384, and with 3 is 576. Now concatenate (don't add) these with the original number: "192" + "384" + "576" = "192384576", which contains all the digits from 1 to 9 exactly once.

Here are some other fascinating numbers, suchas: 192, 1920, 2019, 327, etc.

Note: For a number to be a fascinating number, it should have three or more digits.

Input & Output Scenarios

Following are a few input and output scenarios that will help you to understand how to check fascinating numbers by doing mathematical calculations:

Scenario 1

Suppose the number is 327:

Input: 327
Output: Yes

Calculation:
Multiply with 2: 327 x 2 = 654
Multiply with 3: 327 x 3 = 981
Concatenate (not addition) the product with the number itself: 654 + 981 + 327 = 654981327

Since the result includes all digits from 1 to 9, 327 is a fascinating number.

Scenario 2

Suppose the given number is 241:

Input: 241
Output: No

Calculation:
Multiply with 2: 241 x 2 = 482
Multiply with 3: 241 x 3 = 723
Concatenate (not adding) the product with the number itself: 482 + 732 + 214 = 482732214

The result does not include all digits from 1 to 9; 214 is not a fascinating number.

Example 1

In the following example, we check if the number 327 is a Fascinating number. We multiply the number by 2 and 3 and concatenate (not addition) the product with the number itself, and if the result includes all the digits from 1 to 9 (by checking the frequency of each digit), we will display "Yes" or else "No":

public class checkFascinating {
   public static void main(String args[]){
      int num = 327;
      System.out.println("The given number is: "+num);
      
      // the product of the numbers
      int prod1 = num * 2;
      int prod2 = num * 3;
      
      String concatNum = prod1 + "" + prod2 + num;
      boolean flag = true;
      
      for(char c = '1'; c <= '9'; c++)  {  
         int count = 0;  
         for(int i = 0; i < concatNum.length(); i++)  {  
            char ch = concatNum.charAt(i);  
            //compares the character of concatNum with i  
            if(ch == c) {
               count++;  
            }
         }
         
         // Checks if all the digits are present in the number
         if(count > 1 || count == 0)  {  
            flag = false;  
            break;  
         }
      }  
      
      if(flag){
         System.out.println("Yes! " + num + " is a fascinating number");
      }
      else{
         System.out.println("No! " + " is not a fascinating number");
      }
   }
}

Output

Following is the output of the above program:

The given number is: 327
Yes! 327 is a fascinating number

Example 2

This is another example of checking fascinating numbers. We define a method named checkFascinatingNumber(), which multiplies the number by 2 and 3, then concatenates (not addition) the original number with both results. If the combined result contains all digits from 1 to 9 exactly once, it is a Fascinating number; otherwise, no.

public class checkFascinating {

   public static void checkFascinatingNumber(int num){
      // the product of the numbers
      int prod1 = num * 2;
      int prod2 = num * 3;

      String concatNum = prod1 + "" + prod2 + num;
      boolean flag = true;

      for(char c = '1'; c <= '9'; c++)  {  
         int count = 0;  
         for(int i = 0; i < concatNum.length(); i++)  {  
            char ch = concatNum.charAt(i);  
            //compares the character of concatNum with i  
            if(ch == c) {
               count++;  
            }
         }

         // Checks if all the digits are present in the number
         if(count > 1 || count == 0)  {  
            flag = false;  
            break;  
         }
      }  

      if(flag){
         System.out.println("Yes! " + num + " is a fascinating number");
      }
      else{
         System.out.println("No! " + num + " is not a fascinating number");
      }
   }
   public static void main(String args[]){
      int num = 54;
      System.out.println("The given number is: "+num);

      //calling the checkFascinatingNumber() method to check the fascinating number
      checkFascinatingNumber(num);
   }
}

Output

Below is the output of the above program:

The given number is: 54
No! 54 is not a fascinating number
Updated on: 2025-05-29T18:48:33+05:30

5K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements