Skip to content

Instantly share code, notes, and snippets.

@ahmet-cetinkaya
Created November 3, 2021 14:25
Show Gist options
  • Save ahmet-cetinkaya/51a8a6cb0554978beadacd71dd90eafb to your computer and use it in GitHub Desktop.
Save ahmet-cetinkaya/51a8a6cb0554978beadacd71dd90eafb to your computer and use it in GitHub Desktop.
Perfect Numbers - Javascript
// Helper
const findDivisors = number => {
const divisors = [1];
for (let i = 2; i < number - 1; ++i) if (number % i === 0) divisors.push(i);
return divisors;
};
const sum = (...numbers) => numbers.reduce((a, b) => a + b);
// Perfect Number
const isPerfectNumber = number => sum(...findDivisors(number)) === number;
const findPerfectNumbers = (...numbers) =>
numbers.forEach(number =>
isPerfectNumber(number)
? console.log(`${number} is perfect number. 💚`)
: console.log(`${number} is not perfect number. ❌`),
);
// Test
const numbers = Array(1000)
.fill(1)
.map((_, i) => i + 1);
findPerfectNumbers(...numbers);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment