DEV Community

Bala Murugan
Bala Murugan

Posted on

Perfect Number

Definition :

A Perfect Number is a number that is equal to the sum of its proper divisors (excluding the number itself).

Example

Number = 6

Proper divisors of 6 are:

1
2
3

Sum = 1 + 2 + 3 = 6

Since the sum of the divisors is equal to the number, 6 is a Perfect Number.

Algorithm

1.Start

2.Read the number n

3.Initialize i = 1 and sum = 0

4.Check whether i < n

5.If n % i == 0, add i to sum.

6.Increment i by 1

7.Repeat steps 4 to 6 until i becomes equal to n

8.Check whether sum == n

9.If true, print Perfect Number

10.Otherwise, print Not a Perfect Number
Stop.

FLOWCHART:

    ┌───────┐
    │ Start │
    └───┬───┘
        │
        ▼
┌─────────────┐
│ Input n     │
└─────┬───────┘
      │
      ▼
┌─────────────┐
│ i = 1       │
│ sum = 0     │
└─────┬───────┘
      │
      ▼
  ┌────────┐
  │ i < n ?│
  └──┬──┬──┘
   Yes No
    │   │
    ▼   ▼
Enter fullscreen mode Exit fullscreen mode

┌──────────┐
│sum == n ?│
└──┬────┬──┘
Yes No
│ │
▼ ▼
┌────────┐ ┌────────────┐
│ Print │ │ Print │
│Perfect │ │Not Perfect │
│Number │ │ Number │
└────┬───┘ └─────┬──────┘
│ │
▼ ▼
┌─────────┐
│ Stop │
└─────────┘

(If i < n)

Enter fullscreen mode Exit fullscreen mode

┌─────────┐
│n % i=0 ?│
└──┬───┬──┘
Yes No
│ │
▼ │
┌─────────┐
│sum=sum+i│
└────┬────┘


┌─────────┐
│ i=i+1 │
└────┬────┘

└──────► Back to i < n ?

Code:

n = int(input("Enter a number: "))

i = 1
sum = 0

while i < n:
    if n % i == 0:
        sum += i
    i += 1

if sum == n:
    print("Perfect Number")
else:
    print("Not a Perfect Number")

Enter fullscreen mode Exit fullscreen mode
Input 1
Enter a number: 6

Output 1
Perfect Number

Enter fullscreen mode Exit fullscreen mode
Input 2

Enter a number: 10

Output 2
Not a Perfect Number
Enter fullscreen mode Exit fullscreen mode

Top comments (0)