diff --git a/ashish-contribution b/ashish-contribution new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/src/main/java/com/thealgorithms/maths/NeonNumber.java b/src/main/java/com/thealgorithms/maths/NeonNumber.java new file mode 100644 index 000000000000..8dc940d4aa2c --- /dev/null +++ b/src/main/java/com/thealgorithms/maths/NeonNumber.java @@ -0,0 +1,32 @@ +package com.thealgorithms.maths; + +/** + * Neon Number algorithm. + * A number whose sum of digits of its square equals the number itself. + * Example: 9 - 9^2 = 81 - 8+1 = 9 + * + * @see + * Wikipedia + */ +public final class NeonNumber { + + private NeonNumber() { + } + + /** + * Check if a number is a Neon number. + * + * @param number the input number + * @return true if neon number, false otherwise + */ + public static boolean isNeon(final int number) { + int square = number * number; + int digitSum = 0; + int temp = square; + while (temp > 0) { + digitSum = digitSum + temp % 10; + temp /= 10; + } + return digitSum == number; + } +} diff --git a/src/test/java/com/thealgorithms/maths/NeonNumberTest.java b/src/test/java/com/thealgorithms/maths/NeonNumberTest.java new file mode 100644 index 000000000000..0200785e9ad4 --- /dev/null +++ b/src/test/java/com/thealgorithms/maths/NeonNumberTest.java @@ -0,0 +1,23 @@ +package com.thealgorithms.maths; + +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import org.junit.jupiter.api.Test; + +public class NeonNumberTest { + + @Test + public void testIsNeonTrue() { + assertTrue(NeonNumber.isNeon(0)); + assertTrue(NeonNumber.isNeon(1)); + assertTrue(NeonNumber.isNeon(9)); + } + + @Test + public void testIsNeonFalse() { + assertFalse(NeonNumber.isNeon(2)); + assertFalse(NeonNumber.isNeon(5)); + assertFalse(NeonNumber.isNeon(10)); + } +}