Robotics & Artificial Intelligence

Write a function which returns if a number passed as as argument is a perfect number or an Armstrong number.

Python Functions

1 Like

Answer

def check_number(n):
    s = 0
    temp = n
    digits = len(str(n))

    while temp > 0:
        d = temp % 10
        s = s + d ** digits
        temp = temp // 10

    p = 0
    for i in range(1, n):
        if n % i == 0:
            p = p + i

    if p == n:
        return "Perfect Number"
    elif s == n:
        return "Armstrong Number"
    else:
        return "Neither Perfect nor Armstrong"

num = int(input("Enter a number: "))
result = check_number(num)
print(result)

Output

Enter a number: 9474
Armstrong Number

Enter a number: 28
Perfect Number

Answered By

1 Like


Related Questions