A neon number is a number where the sum of digits of the square of the number is equal to the number. The task is to check and print neon numbers in a range.
Illustration:
Case 1: Input : 9 Output : Given number 9 is Neon number Explanation : square of 9=9*9=81; sum of digit of square : 8+1=9(which is equal to given number) Case 2: Input : 8 Output : Given number is not a Neon number Explanation : square of 8=8*8=64 sum of digit of square : 6+4=10(which is not equal to given number)
Algorithm :
- First, find the square of the given number.
- Find the sum of the digit of the square by using a loop.
 - The condition checksum is equal to the given number
- Return true
- Else return false.
Pseudo code : Square =n*n; while(square>0) { int r=square%10; sum+=r; square=square/10; }
Example:
Java
// Java Program to Check If a Number is Neon number or not Â
// Importing java input/output library import java.io.*; Â
class GFG { Â
    // Method to check whether number is neon or not     // Boolean type     public static boolean checkNeon( int n)     {         // squaring the number to be checked         int square = n * n; Â
        // Initializing current sum to 0         int sum = 0 ; Â
        // If product is positive         while (square > 0 ) { Â
            // Step 1: Find remainder             int r = square % 10 ; Â
            // Add remainder to the current sum             sum += r; Â
            // Drop last digit of the product             // and store the number             square = square / 10 ;         } Â
        // Condition check         // Sum of digits of number obtained is         // equal to original number         if (sum == n) Â
            // number is neon             return true ;         else Â
            // number is not neon             return false ;     } Â
    // Main driver method     public static void main(String[] args)     {         // Custom input         int n = 9 ; Â
        // Calling above function to check custom number or         // if user entered number via Scanner class         if (checkNeon(n)) Â
            // Print number considered is neon             System.out.println( "Given number " + n                                + " is Neon number" );         else Â
            // Print number considered is not neon             System.out.println( "Given number " + n                                + " is not a Neon number" );     } } |
Given number 9 is Neon number
Time Complexity: O(l) where l is the number of the digit in the square of the given number
Recursive Approach:Â
Explanation:
- In this approach, we use a recursive function isNeonNumber to check if the input number is a neon number.
- The function takes two arguments: the square of the input number and the input number itself.
- At each recursive call, we extract the last digit of the square number and subtract it from the input number.
- We then call the function recursively with the remaining digits of the square number and the updated input number.
- If the square number has no more digits left (i.e., square == 0), then we check if the input number is zero (i.e., number == 0).
If the input number is zero, then the original input number is a neon number; otherwise, it is not.
Java
import java.util.Scanner; Â
public class NeonNumber { Â Â Â Â public static void main(String[] args) { Â Â Â Â Â Â Â Â int number= 9 ; Â Â Â Â Â Â Â Â int square = number * number; Â Â Â Â Â Â Â Â if (isNeonNumber(square, number)) { Â Â Â Â Â Â Â Â Â Â Â Â System.out.println(number + " is a neon number" ); Â Â Â Â Â Â Â Â } else { Â Â Â Â Â Â Â Â Â Â Â Â System.out.println(number + " is not a neon number" ); Â Â Â Â Â Â Â Â } Â Â Â Â } Â
    private static boolean isNeonNumber( int square, int number) {         if (square == 0 ) {             return number == 0 ;         } else {             int digit = square % 10 ;             return isNeonNumber(square / 10 , number - digit);         }     } } |
9 is a neon number
 Time Complexity: O(logn)
 Auxiliary Space: O(logn)