# Leetcode Perfect Number problem solution

In this Leetcode Perfect Number problem solution A perfect number is a positive integer that is equal to the sum of its positive divisors, excluding the number itself. A divisor of an integer x is an integer that can divide x evenly.

Given an integer n, return true if n is a perfect number, otherwise return false.

## Problem solution in Python.

```class Solution(object):
def checkPerfectNumber(self, num):
"""
:type num: int
:rtype: bool
"""
if num <= 1:
return False
cum = cur = 1
while cur < int(math.sqrt(num)):
cur += 1
if num % cur == 0:
cum += cur + num / cur
return num == cum```

## Problem solution in Java.

```class Solution {
public boolean checkPerfectNumber(int num) {
if(num==1)return false;
int i=2;
int k=0;
while(i*i<=num){
if(num%i==0){
k+=(i+(num/i));
}i++;
}
return k+1==num;
}
}```

## Problem solution in C++.

```class Solution {
public:
bool checkPerfectNumber(long long int num) {
if(num<=1)
return false;
long long int sum1=1;

for(long long int i=2;i<=(int)(sqrt(num));i++){
if(num%i==0){
sum1+=i;
if(i*i!=num){
sum1= sum1+ (num/i);
}
}

}
return (sum1==num)?true:false;

}
};```