DEV Community

Cover image for Unlocking the Logic Behind Neon, Strong & Perfect Numbers
Harini
Harini

Posted on

Unlocking the Logic Behind Neon, Strong & Perfect Numbers

1. Neon Number
A Neon Number is a number where:

Sum of digits of its square = the number itself

Example:
Number = 9
Square = 81
Sum = 8 + 1 = 9

So, 9 is a Neon Number.

Key Logic:

  1. Find square of number
  2. Extract digits
  3. Add digits
  4. Compare with original number

Python

def neon_no(no):
    sqr = no * no
    res = sqr
    sum = 0

    while res > 0:
        sum = sum + res % 10
        res = res // 10

    if sum == no:
        print("Neon")
    else:
        print("Not Neon")


neon_no(9)
Enter fullscreen mode Exit fullscreen mode

JavaScript

function neonNo(no) {
    let sqr = no * no;
    let res = sqr;
    let sum = 0;

    while (res > 0) {
        sum = sum + (res % 10);
        res = Math.floor(res / 10);
    }

    if (sum === no) {
        console.log("Neon");
    } else {
        console.log("Not Neon");
    }
}

neonNo(9);
Enter fullscreen mode Exit fullscreen mode

Java

public class Main {
    public static void neonNo(int no) {
        int sqr = no * no;
        int res = sqr;
        int sum = 0;

        while (res > 0) {
            sum = sum + (res % 10);
            res = res / 10;
        }

        if (sum == no) {
            System.out.println("Neon");
        } else {
            System.out.println("Not Neon");
        }
    }

    public static void main(String[] args) {
        neonNo(9);
    }
}
Enter fullscreen mode Exit fullscreen mode

Output

2. Strong Number
A Strong Number is a number where:

Sum of factorial of digits = the number itself

Example:
Number = 145
Factorials = 1! + 4! + 5!
= 1 + 24 + 120 = 145

So, 145 is a Strong Number.

Key Logic:

  1. Extract each digit
  2. Find factorial
  3. Add all factorials
  4. Compare with original number

Python

def factorial(n):
    if n==1:
        return 1
    return n*factorial(n-1)

def strong(num):
    numc=num
    sum=0
    while  numc>0:
        sum=sum+factorial(numc%10)
        numc=numc//10
    if sum==num:
        print( num," is strong")
    else:
        print( num," is not strong")

strong(145)
Enter fullscreen mode Exit fullscreen mode

JavaScript


function factorial(n) {
    if (n === 0 || n === 1) {
        return 1;
    }
    return n * factorial(n - 1);
}

function strong(num) {
    let numc = num;
    let sum = 0;

    while (numc > 0) {
        let digit = numc % 10;
        sum = sum + factorial(digit);
        numc = Math.floor(numc / 10);
    }

    if (sum === num) {
        console.log(num + " is strong");
    } else {
        console.log(num + " is not strong");
    }
}

strong(145);

Enter fullscreen mode Exit fullscreen mode

Java

public class StrongNumber {

    // Factorial function (recursion)
    public static int factorial(int n) {
        if (n == 0 || n == 1) {
            return 1;
        }
        return n * factorial(n - 1);
    }

    // Strong number check
    public static void strong(int num) {
        int numc = num;
        int sum = 0;

        while (numc > 0) {
            int digit = numc % 10;
            sum = sum + factorial(digit);
            numc = numc / 10;
        }

        if (sum == num) {
            System.out.println(num + " is strong");
        } else {
            System.out.println(num + " is not strong");
        }
    }

    public static void main(String[] args) {
        strong(145);
    }
}


Enter fullscreen mode Exit fullscreen mode

Output

3. Perfect Number

A Perfect Number is a number where:

Sum of its proper divisors = the number itself

Example:
Number = 6
Divisors = 1, 2, 3
Sum = 1 + 2 + 3 = 6

So, 6 is a Perfect Number.

Key Logic:

  1. Find all divisors (except the number itself)
  2. Add them
  3. Compare with original number
def divisor_sum(no):
    sum = 0
    div = 1

    while div < no:
        if no % div == 0:
            sum += div
        div += 1

    return sum


def perfect_no(no):
    if divisor_sum(no) == no:
        print("Perfect")
    else:
        print("Not Perfect")


perfect_no(6)
Enter fullscreen mode Exit fullscreen mode

JavaScript

function divisorSum(no) {
    let sum = 0;
    let div = 1;

    while (div < no) {
        if (no % div === 0) {
            sum += div;
        }
        div++;
    }

    return sum;
}

function perfectNo(no) {
    if (divisorSum(no) === no) {
        console.log("Perfect");
    } else {
        console.log("Not Perfect");
    }
}

perfectNo(6);
Enter fullscreen mode Exit fullscreen mode

Java

public class Main {

    public static int divisorSum(int no) {
        int sum = 0;
        int div = 1;

        while (div < no) {
            if (no % div == 0) {
                sum += div;
            }
            div++;
        }

        return sum;
    }

    public static void perfectNo(int no) {
        if (divisorSum(no) == no) {
            System.out.println("Perfect");
        } else {
            System.out.println("Not Perfect");
        }
    }

    public static void main(String[] args) {
        perfectNo(6);
    }
}
Enter fullscreen mode Exit fullscreen mode

Output

Top comments (0)