How to check whether a number is a perfect number in C

1 Answer

0 votes
#include <stdio.h>
  
// A perfect number is a positive integer that is equal to the sum 
// of its positive divisors, excluding the number itself

// 6
// factors = 1, 2, 3
// 1 + 2 + 3 = 6
  
int isPerfectNumber(int n) {
    int i = 1, sum = 0;
    
    while (i < n) {
        if (n % i == 0) {
            sum = sum + i;
        }
          
        i++;
    }
          
    return sum == n;
}
 
int main() {
    int num = 496;
   
    if (isPerfectNumber(num))
        printf("%d is a Perfect Number", num);
    else
        printf("%d is Not a Perfect Number", num);
   
    return 0;
}
   
   
   
/*
run:
   
496 is a Perfect Number
   
*/

 



answered Oct 27, 2021 by avibootz
edited Dec 27, 2024 by avibootz
...