This commit is contained in:
2025-02-02 22:48:09 +01:00
parent 1146914ec3
commit 69e937d98e
3 changed files with 79 additions and 0 deletions

View File

@@ -0,0 +1,33 @@
const properDivisors = (n: number): number[] => {
const divs: number[] = [];
for (let i = 1; i <= Math.sqrt(n); i++) {
if (n % i === 0) {
divs.push(i);
const otherDivisor = n / i;
if (otherDivisor !== i && otherDivisor !== n) {
divs.push(otherDivisor);
}
}
}
return divs;
}
const sumOfDivisors = (n: number): number => {
const divs = properDivisors(n)
return divs.reduce((acc, div) => acc + div, 0);
}
export function buddy(start: number, limit: number): number[] {
for (let n = start; n <= limit; n++) {
const sumN = sumOfDivisors(n);
const m = sumN - 1;
const sumM = sumOfDivisors(m);
if (m > n && sumM === n + 1) {
return [n, m];
}
}
return [];
}