Example of Spy Number
Let's discuss few examples to better understand spy numbers:
1. Consider the number 1124:
- Sum of digits: 1 + 1 + 2 + 4 = 8
- Product of digits: 1 x 1 x 2 x 4 = 8
- Since the sum and product are equal, 1124 is a spy number.
2. Another example is the number 22:
- Sum of digits: 2 + 2 = 4
- Product of digits: 2 x 2 = 4
- Again, the sum and product are equal, so 22 is a spy number.
3. Let's try a larger number, like 132:
- Sum of digits: 1 + 3 + 2 = 6
- Product of digits: 1 x 3 x 2 = 6
- The sum and product match, confirming that 132 is a spy number.
4. However, not all numbers are spy numbers. Take the number 123:
- Sum of digits: 1 + 2 + 3 = 6
- Product of digits: 1 x 2 x 3 = 6
- Although the sum and product are equal, 123 is not a spy number because it does not satisfy the condition of being a positive integer when its digits are multiplied.
Steps to find Spy Number
Finding spy numbers is a straightforward process. Here's a step-by-step approach:
1. Choose a positive integer that you want to check.
2. Separate the individual digits of the number.
3. Calculate the sum of all the digits by adding them together.
4. Calculate the product of all the digits by multiplying them together.
5. Compare the sum and the product:
- If the sum and product are equal, the number is a spy number.
- If the sum and product are not equal, the number is not a spy number.
6. Repeat the process with different numbers to find more spy numbers.
Let's apply these steps to find out if the number 1412 is a spy number:
1. The number we want to check is 1412.
2. The individual digits are 1, 4, 1, and 2.
3. Sum of digits: 1 + 4 + 1 + 2 = 8
4. Product of digits: 1 x 4 x 1 x 2 = 8
5. The sum (8) and product (8) are equal, so 1412 is a spy number.
We can use the same steps to check any number. Remember, the key is to compare the sum and product of the digits. If they match, you've found a spy number!
Spy Number Java Program
Now that we understand the concept of spy numbers and how to find them, let's see how we can implement a Java program to check if a number is a spy number.
For example :
Java
public class SpyNumber {
public static void main(String[] args) {
int number = 1124;
if (isSpyNumber(number)) {
System.out.println(number + " is a spy number.");
} else {
System.out.println(number + " is not a spy number.");
}
}
public static boolean isSpyNumber(int number) {
int sum = 0;
int product = 1;
int digit;
while (number > 0) {
digit = number % 10;
sum += digit;
product *= digit;
number /= 10;
}
return sum == product;
}
}

You can also try this code with Online Java Compiler
Run Code
Output
1124 is a spy number.
Let's go through the code step by step:
1. We define a class called `SpyNumber` with the main method.
2. Inside the main method, we declare a variable `number` and assign it the value we want to check (in this case, 1124).
3. We call the `isSpyNumber` method, passing the `number` as an argument. This method will return `true` if the number is a spy number and `false` otherwise.
4. Based on the returned value, we print whether the number is a spy number or not.
5. The `isSpyNumber` method takes an integer `number` as input and returns a boolean value.
6. We initialize two variables: `sum` to keep track of the sum of digits and `product` to keep track of the product of digits.
7. We use a while loop to iterate over each digit of the number. In each iteration:
- We extract the last digit using the modulo operator (`%`) and store it in the `digit` variable.
- We add the `digit` to the `sum`.
- We multiply the `product` by the `digit`.
- We divide the `number` by 10 to remove the last digit.
8. After the loop ends, we compare the `sum` and `product`. If they are equal, we return `true`, indicating that the number is a spy number. Otherwise, we return `false`.
Note: You can run this program with different numbers to check if they are spy numbers or not. The program will output whether the given number is a spy number based on the comparison of the sum and product of its digits.
Frequently Asked Questions
Can a spy number have negative digits?
No, a spy number must be a positive integer. Negative digits are not allowed.
Is zero considered a spy number?
No, zero is not considered a spy number because the product of its digits is always zero.
How rare are spy numbers?
Spy numbers are relatively rare compared to other numbers. They occur less frequently as the number of digits increases.
Conclusion
In this article, we have learned about spy numbers, which are special numbers where the sum of digits equals the product of digits. We discussed the definition of spy numbers, looked at various examples, and learned how to identify them using a step-by-step approach. We also implemented a Java program to check whether a given number is a spy number or not.
You can also practice coding questions commonly asked in interviews on Coding Ninjas Code360.
Also, check out some of the Guided Paths on topics such as Data Structure and Algorithms, Competitive Programming, Operating Systems, Computer Networks, DBMS, System Design, etc., as well as some Contests, Test Series, and Interview Experiences curated by top Industry Experts.