Perfect Number

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.

Example:

Input: num = 28
Output: true
Explanation: 28 = 1 + 2 + 4 + 7 + 14
1, 2, 4, 7, and 14 are all divisors of 28.

Approach:

C++

#include <bits/stdc++.h>
using namespace std;

int perfectNumber(int n)
{
    int sum = 0;
    for (int i = 1i <= sqrt(n); i++)
    {
        if (n % i == 0)
        {
            if (n / i == i)
                sum += n / i;
            else
                sum += n / i + i;
        }
    }
    return sum;
}
bool checkPerfectNumber(int num)
{
    if (num == 0)
        return false;
    int res = perfectNumber(num);
    if (res - num == num)
        return true;
    return false;
}

int main()
{
    int n = 28;
    if (checkPerfectNumber(n))
    {
        cout << "true";
    }
    else
    {
        cout << "false";
    }

    return 0;
}


No comments:

Post a Comment