Check Perfect Number in C, C++, Java & Python – Code with Explanation & Examples in Short and Simple

   

C Program

int isPerfect(int n) {
    int s = 0;
    for (int i = 1; i < n; i++)
        if (n % i == 0) s += i;
    return s == n;
}

C Output

Input: 28  
Output: Yes, Perfect


C++ Program

bool isPerfect(int n) {
    int s = 0;
    for (int i = 1; i < n; i++)
        if (n % i == 0) s += i;
    return s == n;
}

C++ Output

Input: 6  
Output: Yes, Perfect


JAVA Program

boolean isPerfect(int n) {
    int s = 0;
    for (int i = 1; i < n; i++)
        if (n % i == 0) s += i;
    return s == n;
}

JAVA Output

Input: 12  
Output: No, Not Perfect


Python Program

def is_perfect(n):
    return sum(i for i in range(1, n) if n % i == 0) == n

Python Output

Input: 496  
Output: Yes, Perfect


In-Depth Explanation
Example
Take the number 28. Let's find all its divisors except itself:

Divisors of 28: 1, 2, 4, 7, 14

Sum = 1 + 2 + 4 + 7 + 14 = 28

Since the sum of its divisors is the same as the original number, 28 is a Perfect Number.

Now take 12: its divisors are 1, 2, 3, 4, 6.
Sum = 16 → not equal to 12 → ❌ not perfect.

Real-Life Analogy
Suppose you give someone some presents, and the person returns the same amount worth in return. It is an ideal balance — like a perfect number gets back the same value from its components (divisors). It is like an ideal relationship — each component (divisor) gives just what is needed to recreate the whole.

Another analogy: Consider cutting a chocolate bar into sections (1, 2, 4, etc.). If all the little pieces can be added together exactly to recreate the whole bar, it's perfect.

Why It Matters
Perfect numbers aren't merely a cool math idea — they have deep roots in number theory and were of interest to ancient mathematicians such as Euclid and Pythagoras. They're exotic and intriguing.

From a programming point of view, they:

Enhance comprehension of conditions and loops

Enhance ideas of accumulation and divisibility

Introduce logical structure checking

What You Learn from This
You learn to:

Loop over a range to discover divisors

Employ % for modulo tests

Utilize a running total to accumulate good values

Apply logic tests (is sum == number?)

It also teaches you about mathematical properties and how they can be algorithmically verified.

This idea enhances your comprehension of:

Factorization

Logical equality tests

Efficient looping (you could optimize by going to n/2 only)
 
Appropriate Interview Questions and Real Life Problems
Perfect Number identification is a good question coming in most interviews to test:
Appreciation for control flow
 
Logic built using loops
 
Mathematical conditions
 
Most frequently asked follow-ups:
 
Identify all perfect numbers in a range.
 
Optimize by divisor symmetry
 
Difference between perfect, abundant and deficient numbers
 
In real life, though perfect numbers are rarely used, the logic of the perfect number, i.e., factor based thinking is extensively used in:
 
Cryptology
 
Games score validations
 
Pattern recognition systems

SEO-Optimized Explanation
A perfect number is a whole number equal to the sum of all of its positive divisors, not including itself. Knowing how to test for perfect numbers in C, C++, Java, or Python is great reinforcement in number theory and logic-based problem-solving. It illustrates how to iterate through divisors, use conditions with the modulus operator, and compare sums — all important concepts in beginner programming. Perfect numbers such as 6, 28, 496, and 8128 are another popular subject in competitive programming and interviews. Knowing how to detect them in an efficient manner aids in gaining confidence in coding and preparing for logical problems in actual development and technical tests.