Neon Number
Java coding interview problem for Number Logic: Neon Number.
Checking whether a number is a Neon Number is one of the easiest and most commonly asked beginner Java coding interview questions.
This problem helps interviewers evaluate your understanding of:
- Arithmetic operations
- Loops
- Digit extraction
- Mathematical logic
- Problem-solving skills
Neon Number problems are frequently used in beginner programming interviews and coding practice platforms.
What is a Neon Number?
A Neon Number is a number whose sum of the digits of its square is equal to the original number.
In simple words,
Neon Number
=
Sum of Digits of (Number²)
Mathematical Definition
If
N
is a number,
then
Square = N × N
If
Sum of Digits(Square)
=
N
then
N is a Neon Number
Example 1
Number
9
Square
9 × 9
=
81
Digits
8
1
Sum
8 + 1
=
9
Since
9 = 9
Therefore
9 is a Neon Number
Example 2
Number
1
Square
1
Digits
1
Sum
1
Therefore
1 is a Neon Number
Example 3
Number
12
Square
144
Digits
1
4
4
Sum
1 + 4 + 4
=
9
Since
9 ≠ 12
Therefore
12 is NOT a Neon Number
Some Neon Numbers
| Number | Square | Digit Sum | Neon Number? |
|---|---|---|---|
| 0 | 0 | 0 | ✅ Yes |
| 1 | 1 | 1 | ✅ Yes |
| 9 | 81 | 9 | ✅ Yes |
| 10 | 100 | 1 | ❌ No |
| 12 | 144 | 9 | ❌ No |
| 15 | 225 | 9 | ❌ No |
Real Interview Question
Write a Java program to check whether a given number is a Neon Number.
Understanding the Logic
Suppose
Number = 9
First,
calculate its square.
9² = 81
Extract every digit.
8
1
Find their sum.
8 + 1 = 9
Compare the sum with the original number.
If both are equal,
the number is a Neon Number.
Visual Representation
Input
9
Processing
9
↓
Square
↓
81
↓
Extract Digits
↓
8
↓
1
↓
Sum
↓
8 + 1
↓
9
↓
Compare
↓
9 == 9
↓
Neon Number
Brute Force Approach
The simplest solution is
- Store the original number.
- Find its square.
- Extract every digit of the square.
- Add the digits.
- Compare the sum with the original number.
Algorithm
Step 1
Read the number.
Step 2
Store the original number.
original = number;
Step 3
Find the square.
square = number * number;
Step 4
Initialize
sum = 0;
Step 5
Extract the last digit.
digit = square % 10;
Step 6
Add the digit to the sum.
Step 7
Remove the last digit.
square = square / 10;
Step 8
Repeat until
square = 0
Step 9
Compare
sum == original
Dry Run
Input
9
Square
81
Initial
sum = 0
| Digit | Running Sum |
|---|---|
| 1 | 1 |
| 8 | 9 |
Comparison
9 == 9
Output
Neon Number
Another Dry Run
Input
12
Square
144
Initial
sum = 0
| Digit | Running Sum |
|---|---|
| 4 | 4 |
| 4 | 8 |
| 1 | 9 |
Comparison
9 ≠ 12
Output
Not a Neon Number
Approach 1 — Using Iteration (Loop)
This is the easiest and most common interview solution.
Complete Java Program
public class NeonNumber {
public static void main(String[] args) {
int number = 9;
int original = number;
int square = number * number;
int sum = 0;
while (square > 0) {
int digit = square % 10;
sum += digit;
square /= 10;
}
if (sum == original) {
System.out.println(original + " is a Neon Number");
} else {
System.out.println(original + " is NOT a Neon Number");
}
}
}
Output
9 is a Neon Number
Step-by-Step Code Explanation
Step 1
Declare the number.
int number = 9;
Current value
9
Step 2
Store the original number.
int original = number;
This is required because the value of
square
changes while extracting digits.
Step 3
Find the square.
int square = number * number;
Result
81
Step 4
Initialize the sum.
int sum = 0;
Initially
sum = 0
Step 5
Extract the last digit.
int digit = square % 10;
First digit
1
Step 6
Add the digit.
sum += digit;
Running sum
1
↓
9
Step 7
Remove the last digit.
square /= 10;
Values become
81
↓
8
↓
0
Step 8
Compare
sum == original
If true,
the number is a Neon Number.
Otherwise,
it is not.
Example Execution
Input
Number = 1
Square
1
Digit Sum
1
Output
1 is a Neon Number
Input
Number = 15
Square
225
Digit Sum
2 + 2 + 5
=
9
Output
15 is NOT a Neon Number
Why Does This Work?
The algorithm first computes the square of the number.
Then it extracts each digit of the square using the modulus (%) operator, adds the digits together, and finally compares the sum with the original number.
If both values are equal, the number satisfies the mathematical definition of a Neon Number.
Advantages of This Approach
- Very easy to understand.
- Uses simple arithmetic operations.
- Demonstrates digit extraction.
- Excellent for beginners.
- Frequently asked in entry-level interviews.
Drawbacks
Although this solution is straightforward, interviewers often ask follow-up questions such as:
- Can you create a reusable method?
- How would you check Neon Numbers in a range?
- What is the time complexity?
- Can you optimize the digit-sum calculation?
- How does a Neon Number differ from an Armstrong Number or Strong Number?
In Part 2, we'll cover:
- Reusable Method Approach
- Printing Neon Numbers in a Range
- Time and Space Complexity
- Comparison of Approaches
- Common Interview Mistakes
- Interview Follow-up Questions
- Related Coding Problems
- Key Takeaways
- Interview Tips
Approach 2 — Using a Reusable Method
Instead of writing the Neon Number logic inside the main() method, we can create a reusable method.
This approach improves:
- Code readability
- Maintainability
- Reusability
- Unit testing
Java Program
public class NeonNumberMethod {
static boolean isNeon(int number) {
int square = number * number;
int sum = 0;
while (square > 0) {
int digit = square % 10;
sum += digit;
square /= 10;
}
return sum == number;
}
public static void main(String[] args) {
int number = 9;
if (isNeon(number)) {
System.out.println(number + " is a Neon Number");
} else {
System.out.println(number + " is NOT a Neon Number");
}
}
}
Output
9 is a Neon Number
Approach 3 — Print Neon Numbers in a Range
Sometimes interviewers ask:
Print all Neon Numbers between 1 and N.
The solution is to reuse the isNeon() method.
Java Program
public class NeonNumbersRange {
static boolean isNeon(int number) {
int square = number * number;
int sum = 0;
while (square > 0) {
sum += square % 10;
square /= 10;
}
return sum == number;
}
public static void main(String[] args) {
int limit = 100;
System.out.println("Neon Numbers:");
for (int i = 0; i <= limit; i++) {
if (isNeon(i)) {
System.out.print(i + " ");
}
}
}
}
Output
Neon Numbers:
0 1 9
Dry Run (Reusable Method)
Input
Number = 9
Processing
Square
↓
81
↓
Digit
1
↓
Sum = 1
↓
Digit
8
↓
Sum = 9
↓
Compare
9 == 9
↓
Return true
Time Complexity
Suppose the square contains
d
digits.
Basic Iterative Solution
| Operation | Complexity |
|---|---|
| Time | O(d) |
| Space | O(1) |
Reusable Method
| Operation | Complexity |
|---|---|
| Time | O(d) |
| Space | O(1) |
Printing Neon Numbers in a Range
| Operation | Complexity |
|---|---|
| Time | O(n × d) |
| Space | O(1) |
where
n
is the upper limit.
Comparison of Approaches
| Approach | Time | Space | Recommended |
|---|---|---|---|
| Basic Loop | O(d) | O(1) | Good for Beginners |
| Reusable Method | O(d) | O(1) | ✅ Best for Interviews |
| Range Solution | O(n × d) | O(1) | Useful Follow-up |
Common Mistakes
Mistake 1
Comparing with the square instead of the original number.
Wrong
sum == square
Correct
sum == number
Mistake 2
Forgetting to store the original number.
Wrong
number
may change during processing.
Correct
int original = number;
Mistake 3
Using multiplication instead of addition.
Wrong
sum *= digit;
Correct
sum += digit;
Mistake 4
Not removing the processed digit.
Wrong
while(square > 0) {
sum += square % 10;
}
Correct
square /= 10;
Otherwise,
the loop never ends.
Mistake 5
Ignoring
0
The square of
0
is
0
Digit sum
0
Therefore,
0 is also a Neon Number.
Interview Follow-up Questions
Q1. What is a Neon Number?
Q2. Why is 9 a Neon Number?
Q3. Is 1 a Neon Number?
Q4. Is 0 a Neon Number?
Q5. Print all Neon Numbers in a range.
Q6. What is the time complexity?
Q7. Can negative numbers be Neon Numbers?
Q8. Explain digit extraction.
Q9. Compare Neon Number and Armstrong Number.
Q10. Write a reusable method for checking Neon Numbers.
Related Coding Problems
- Armstrong Number
- Strong Number
- Perfect Number
- Palindrome Number
- Reverse Number
- Sum of Digits
- Happy Number
- Automorphic Number
Key Takeaways
- A Neon Number is a number whose sum of the digits of its square equals the original number.
- The first Neon Numbers are:
0
1
9
- Calculate the square first.
- Extract digits using:
digit = square % 10;
- Remove digits using:
square /= 10;
- Add every digit to a running sum.
- Compare the final sum with the original number.
- The algorithm runs in O(d) time and O(1) extra space, where d is the number of digits in the square.
Frequently Asked Interview Questions
Q1. What is a Neon Number?
A Neon Number is a number whose sum of the digits of its square equals the original number.
Example
9² = 81
8 + 1 = 9
Q2. Is every single-digit number a Neon Number?
No.
Only
0
1
9
are Neon Numbers.
Q3. Can a negative number be a Neon Number?
Generally, No.
Neon Numbers are defined only for non-negative integers.
Q4. What is the difference between a Neon Number and a Strong Number?
| Neon Number | Strong Number |
|---|---|
| Uses the square of the number | Uses the factorial of each digit |
| Adds digits of the square | Adds factorials of digits |
| Example: 9 | Example: 145 |
Q5. Why is this problem asked in interviews?
Because it tests:
- Arithmetic operations
- Digit extraction
- Looping concepts
- Problem decomposition
- Basic mathematical reasoning
Interview Tip
If an interviewer asks:
"Write a Java program to check whether a number is a Neon Number."
Start by explaining the mathematical definition:
A number is a Neon Number if the sum of the digits of its square equals the original number.
Implement the straightforward loop-based solution by computing the square, extracting its digits using % and /, and summing them. Mention that the algorithm runs in O(d) time, where d is the number of digits in the square, and uses O(1) extra space. As a follow-up, demonstrate good coding practices by moving the logic into a reusable isNeon() method and discuss how it can be extended to print all Neon Numbers within a given range.