GeezerVisonThe World Wide Web, restored to 800 pixels of glory. |
| Home|About|Gaming cabinet|Archives|How it works|Starter sites |
GeezerVison is showing github.com — JavaScript/Project-Euler/Problem021.js at master · TheAlgorithms/JavaScript Expand file tree/ Copy pathProblem021.jsMore file actions 33 lines (29 loc) · 1.04 KB / Copy pathProblem021.jsFile metadata and controls33 lines (29 loc) · 1.04 KB 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 import { aliquotSum } from '../Maths/AliquotSum.js' /** * Problem 21 - Amicable numbers * * @see {@link https://projecteuler.net/problem=21} * * Let d(n) be defined as the sum of proper divisors of n (numbers less than n which divide evenly into n). * If d(a) = b and d(b) = a, where a != b, then a and b are an amicable pair and each of a and b are called amicable numbers. * For example, the proper divisors of 220 are 1,2,4,5,10,11,20,22,44,55 and 110; therefore d(220) = 284. * The proper divisors of 284 are 1,2,4,71 and 142; so d(284) = 220. * Evaluate the sum of all amicable numbers under 10000 * * @author PraneethJain */ function problem21(n) { if (n < 2) { throw new Error('Invalid Input') } let result = 0 for (let a = 2; a < n; ++a) { const b = aliquotSum(a) // Sum of all proper divisors of a // Check if b > a to ensure each pair isn't counted twice, and check if sum of proper divisors of b is equal to a if (b > a && aliquotSum(b) === a) { result += a + b } } return result } export { problem21 } |
| You are visitor 01402503 — GeezerVison does not store the pages you look up. Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required. |