From 3ef9315310ea4a88d9cc73601d8a8a24e802b5e6 Mon Sep 17 00:00:00 2001 From: Kristofer Koishigawa Date: Sun, 28 Jan 2018 16:52:50 +0900 Subject: [PATCH] fix(challenges): Add tests for Project Euler problem 12 (#16545) --- .../project-euler-problems.json | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/challenges/08-coding-interview-questions-and-take-home-assignments/project-euler-problems.json b/challenges/08-coding-interview-questions-and-take-home-assignments/project-euler-problems.json index c77d7e4b403..e0a9c725737 100644 --- a/challenges/08-coding-interview-questions-and-take-home-assignments/project-euler-problems.json +++ b/challenges/08-coding-interview-questions-and-take-home-assignments/project-euler-problems.json @@ -386,23 +386,31 @@ "type": "bonfire", "title": "Problem 12: Highly divisible triangular number", "tests": [ - "assert.strictEqual(euler12(), 76576500, 'message: euler12() should return 76576500.');" + "assert.strictEqual(divisibleTriangleNumber(5), 28, 'message: divisibleTriangleNumber(5) should return 28.');", + "assert.strictEqual(divisibleTriangleNumber(23), 630, 'message: divisibleTriangleNumber(23) should return 630.');", + "assert.strictEqual(divisibleTriangleNumber(500), 76576500, 'message: divisibleTriangleNumber() should return 76576500.');" ], - "solutions": [], + "solutions": ["function divisibleTriangleNumber(n) {\n let counter = 1;\n let triangleNumber = counter++;\n\n function getFactors(num) {\n let factors = [];\n\n let possibleFactor = 1;\n let sqrt = Math.sqrt(num);\n\n while (possibleFactor <= sqrt) {\n if (num % possibleFactor == 0) {\n factors.push(possibleFactor);\n var otherPossibleFactor = num / possibleFactor;\n if (otherPossibleFactor > possibleFactor) {\n factors.push(otherPossibleFactor);\n }\n }\n possibleFactor++;\n }\n\n return factors;\n }\n\n while (getFactors(triangleNumber).length < n) {\n triangleNumber += counter++;\n }\n console.log(triangleNumber)\n return triangleNumber;\n}"], "translations": {}, "challengeSeed": [ - "function euler12() {", + "function divisibleTriangleNumber(n) {", " // Good luck!", " return true;", "}", "", - "euler12();" + "divisibleTriangleNumber(500);" ], "description": [ "The sequence of triangle numbers is generated by adding the natural numbers. So the 7th triangle number would be 1 + 2 + 3 + 4 + 5 + 6 + 7 = 28. The first ten terms would be:", "1, 3, 6, 10, 15, 21, 28, 36, 45, 55, ...", "Let us list the factors of the first seven triangle numbers:", - " 1: 1 3: 1,3 6: 1,2,3,610: 1,2,5,1015: 1,3,5,1521: 1,3,7,2128: 1,2,4,7,14,28", + "1: 1", + "3: 1, 3", + "6: 1, 2, 3, 6", + "10: 1, 2, 5, 10", + "15: 1, 3, 5, 15", + "21: 1, 3, 7, 21", + "28: 1, 2, 4, 7, 14, 28", "We can see that 28 is the first triangle number to have over five divisors.", "What is the value of the first triangle number to have over five hundred divisors?" ]