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; } };
0 Comments