add: solution to project euler problem 23 md file (#38369)

This commit is contained in:
Sanket Kogekar
2020-03-19 05:07:26 +05:30
committed by GitHub
parent 6f90efb20c
commit f25d035e9d

View File

@ -67,7 +67,40 @@ sumOfNonAbundantNumbers(28123);
<section id='solution'> <section id='solution'>
```js ```js
// solution required function abundantCheck(number) {
let sum = 1;
for (let i = 2; i <= Math.sqrt(number); i += 1) {
if(number % i === 0) {
sum += i + +(i !== Math.sqrt(number) && number / i);
}
}
return sum > number;
}
function sumOfNonAbundantNumbers(n) {
let sum = 0;
const memo = {};
let abundantList = [];
// Function checkSum checks if num can be represented as a sum of numbers in the stack (array)
const checkSum = (num, stack, memo) => {
for (let i = 0; i < stack.length; i += 1) {
if ((num - stack[i]) in memo) return true;
}
return false;
};
for (let i = 1; i <= n; i += 1) {
if (abundantCheck(i)) {
abundantList.push(i);
memo[i] = 1;
}
if (checkSum(i, abundantList, memo)) continue;
sum += i;
}
return sum;
}
``` ```
</section> </section>