# Java Program to Check If a Number is Spy number or not

A number is said to be a Spy number if the sum of all the digits is equal to the product of all digits. For performing the task we need to reverse through the number which will take log(N) time.

** Example:**

Input :22Output:Given number is a SPY number.Explanation:Sum of the number is 4 (2 + 2) Product of the number is as 4 (2 * 2)Input :1241Output:Given number is not a SPY number.

**Approach:**

- Calculate the sum of digits of the input Number.
- Calculate the product of digits of the input Number.
- If the sum of digits equals the product of digits then the number is Spy number otherwise not.

Below is the implementation of the above approach:

## Java

`// Java Program to Check If a Number is Spy number or not ` `import` `java.io.*; ` ` ` `class` `GFG { ` ` ` `public` `static` `void` `main(String[] args) ` ` ` `{ ` ` ` `int` `product = ` `1` `, sum = ` `0` `, ld; ` ` ` `int` `n = ` `22` `; ` ` ` ` ` `// calculate sum and product of the number here. ` ` ` `while` `(n > ` `0` `) { ` ` ` `ld = n % ` `10` `; ` ` ` `sum = sum + ld; ` ` ` `product = product * ld; ` ` ` `n = n / ` `10` `; ` ` ` `} ` ` ` ` ` `// compare the sum and product. ` ` ` `if` `(sum == product) ` ` ` `System.out.println( ` ` ` `"Given number is spy number"` `); ` ` ` `else` ` ` `System.out.println( ` ` ` `"Given number is not spy number"` `); ` ` ` `} ` `}` |

**Output**

Given number is spy number

**Complexity: O(log(n))**