Perfect Numberalgorithm

Source

PERFECT NUMBER

The program intakes a number and checks if it is a perfect number or not.

A perfect number is equal to the sum of its divisors excluding itself.

problem in solidity:

perfect number is to hard for calculate in solidity.

so, use 2 or 3 digit's nums for test.


Review

  • SmartContract
function perfectNum(uint num) internal pure returns (bool s) {
    require(num != 0,"0 is not valid");
    uint sum = 0;
    uint div = 0;
    for(uint i = 1; i < num; i++) {
        div = num % i;
        if (div == 0) sum = sum + i;
    }

    sum == num ? s = true : s = false; // short if
}