fix(challenges): Add tests for Project Euler problem 12 (#16545)

This commit is contained in:
Kristofer Koishigawa
2018-01-28 16:52:50 +09:00
committed by mrugesh mohapatra
parent b36ba2cc99
commit 3ef9315310

View File

@ -386,23 +386,31 @@
"type": "bonfire", "type": "bonfire",
"title": "Problem 12: Highly divisible triangular number", "title": "Problem 12: Highly divisible triangular number",
"tests": [ "tests": [
"assert.strictEqual(euler12(), 76576500, 'message: <code>euler12()</code> should return 76576500.');" "assert.strictEqual(divisibleTriangleNumber(5), 28, 'message: <code>divisibleTriangleNumber(5)</code> should return 28.');",
"assert.strictEqual(divisibleTriangleNumber(23), 630, 'message: <code>divisibleTriangleNumber(23)</code> should return 630.');",
"assert.strictEqual(divisibleTriangleNumber(500), 76576500, 'message: <code>divisibleTriangleNumber()</code> 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": {}, "translations": {},
"challengeSeed": [ "challengeSeed": [
"function euler12() {", "function divisibleTriangleNumber(n) {",
" // Good luck!", " // Good luck!",
" return true;", " return true;",
"}", "}",
"", "",
"euler12();" "divisibleTriangleNumber(500);"
], ],
"description": [ "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:", "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, ...", "1, 3, 6, 10, 15, 21, 28, 36, 45, 55, ...",
"Let us list the factors of the first seven triangle numbers:", "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", "<b>1:</b> 1",
"<b>3:</b> 1, 3",
"<b>6:</b> 1, 2, 3, 6",
"<b>10:</b> 1, 2, 5, 10",
"<b>15:</b> 1, 3, 5, 15",
"<b>21:</b> 1, 3, 7, 21",
"<b>28:</b> 1, 2, 4, 7, 14, 28",
"We can see that 28 is the first triangle number to have over five divisors.", "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?" "What is the value of the first triangle number to have over five hundred divisors?"
] ]