-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
solve problems 6, 8, 9 in JavaScript
- Loading branch information
1 parent
666a544
commit 6a7c468
Showing
9 changed files
with
176 additions
and
4 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
JavaScript Implementation of Problem 6 | ||
====================================== | ||
|
||
View source code `here on GitHub! <https://github.com/LivInTheLookingGlass/Euler/blob/master/javascript/p0006.js>`_ | ||
|
||
.. js:autofunction:: p0006 | ||
|
||
.. literalinclude:: ../../javascript/p0006.js | ||
:language: javascript | ||
:linenos: |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
JavaScript Implementation of Problem 8 | ||
====================================== | ||
|
||
View source code `here on GitHub! <https://github.com/LivInTheLookingGlass/Euler/blob/master/javascript/p0008.js>`_ | ||
|
||
.. js:autofunction:: p0008 | ||
|
||
.. literalinclude:: ../../javascript/p0008.js | ||
:language: javascript | ||
:linenos: |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
JavaScript Implementation of Problem 9 | ||
====================================== | ||
|
||
View source code `here on GitHub! <https://github.com/LivInTheLookingGlass/Euler/blob/master/javascript/p0009.js>`_ | ||
|
||
.. js:autofunction:: p0009 | ||
|
||
.. literalinclude:: ../../javascript/p0009.js | ||
:language: javascript | ||
:linenos: |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,32 @@ | ||
/** | ||
* Project Euler Problem 6 | ||
* | ||
* This turned out to be really easy | ||
* | ||
* Problem: | ||
* | ||
* The sum of the squares of the first ten natural numbers is, | ||
* 1**2 + 2**2 + ... + 10**2 = 385 | ||
* | ||
* The square of the sum of the first ten natural numbers is, | ||
* (1 + 2 + ... + 10)**2 = 55**2 = 3025 | ||
* | ||
* Hence the difference between the sum of the squares of the first ten natural | ||
* numbers and the square of the sum is 3025 − 385 = 2640. | ||
* | ||
* Find the difference between the sum of the squares of the first one hundred | ||
* natural numbers and the square of the sum. | ||
* | ||
* @return {number} | ||
*/ | ||
|
||
exports.p0006 = function() { | ||
let sum = 1; | ||
let sum_of_squares = 1; | ||
for (let i = 2; i < 101; i++) { | ||
sum_of_squares += i * i; | ||
sum += i; | ||
} | ||
let square_of_sum = sum * sum; | ||
return square_of_sum - sum_of_squares; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,73 @@ | ||
/** | ||
* Project Euler Problem 8 | ||
* | ||
* In Python I did this with an iterator, but that is more cumbersome here, | ||
* so I just did it with a loop that slices and takes advantage of JavaScript's type coersion | ||
* | ||
* Problem: | ||
* | ||
* The four adjacent digits in the 1000-digit number that have the greatest | ||
* product are 9 × 9 × 8 × 9 = 5832. | ||
* | ||
* 73167176531330624919225119674426574742355349194934 | ||
* 96983520312774506326239578318016984801869478851843 | ||
* 85861560789112949495459501737958331952853208805511 | ||
* 12540698747158523863050715693290963295227443043557 | ||
* 66896648950445244523161731856403098711121722383113 | ||
* 62229893423380308135336276614282806444486645238749 | ||
* 30358907296290491560440772390713810515859307960866 | ||
* 70172427121883998797908792274921901699720888093776 | ||
* 65727333001053367881220235421809751254540594752243 | ||
* 52584907711670556013604839586446706324415722155397 | ||
* 53697817977846174064955149290862569321978468622482 | ||
* 83972241375657056057490261407972968652414535100474 | ||
* 82166370484403199890008895243450658541227588666881 | ||
* 16427171479924442928230863465674813919123162824586 | ||
* 17866458359124566529476545682848912883142607690042 | ||
* 24219022671055626321111109370544217506941658960408 | ||
* 07198403850962455444362981230987879927244284909188 | ||
* 84580156166097919133875499200524063689912560717606 | ||
* 05886116467109405077541002256983155200055935729725 | ||
* 71636269561882670428252483600823257530420752963450 | ||
* | ||
* Find the thirteen adjacent digits in the 1000-digit number that have the | ||
* greatest product. What is the value of this product? | ||
* | ||
* @return {number} | ||
*/ | ||
|
||
exports.p0008 = function() { | ||
let string = ( | ||
"73167176531330624919225119674426574742355349194934" + | ||
"96983520312774506326239578318016984801869478851843" + | ||
"85861560789112949495459501737958331952853208805511" + | ||
"12540698747158523863050715693290963295227443043557" + | ||
"66896648950445244523161731856403098711121722383113" + | ||
"62229893423380308135336276614282806444486645238749" + | ||
"30358907296290491560440772390713810515859307960866" + | ||
"70172427121883998797908792274921901699720888093776" + | ||
"65727333001053367881220235421809751254540594752243" + | ||
"52584907711670556013604839586446706324415722155397" + | ||
"53697817977846174064955149290862569321978468622482" + | ||
"83972241375657056057490261407972968652414535100474" + | ||
"82166370484403199890008895243450658541227588666881" + | ||
"16427171479924442928230863465674813919123162824586" + | ||
"17866458359124566529476545682848912883142607690042" + | ||
"24219022671055626321111109370544217506941658960408" + | ||
"07198403850962455444362981230987879927244284909188" + | ||
"84580156166097919133875499200524063689912560717606" + | ||
"05886116467109405077541002256983155200055935729725" + | ||
"71636269561882670428252483600823257530420752963450" | ||
); | ||
let answer = 0; | ||
for (let i = 0; i < string.length - 13; i++) { | ||
let prod = 1; | ||
for (let c = i; c < i + 13; c++) { | ||
prod *= string[c]; | ||
} | ||
if (prod > answer) { | ||
answer = prod; | ||
} | ||
} | ||
return answer; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
/** | ||
* Project Euler Problem 9 | ||
* | ||
* Brute force on this problem has been very effective, so why stop now | ||
* | ||
* Problem: | ||
* | ||
* A Pythagorean triplet is a set of three natural numbers, a < b < c, for which, | ||
* a**2 + b**2 = c**2 | ||
* | ||
* For example, 3**2 + 4**2 = 9 + 16 = 25 = 5**2. | ||
* | ||
* There exists exactly one Pythagorean triplet for which a + b + c = 1000. | ||
* Find the product abc. | ||
* | ||
* @return {number} | ||
*/ | ||
const MAX = 500; | ||
|
||
exports.p0009 = function() { | ||
for (let c = 3; c < MAX; c++) { | ||
let c_square = c * c; | ||
for (let b = 2; b < c; b++) { | ||
let b_square = b * b; | ||
for (let a = 1; a < b; a++) { | ||
let a_square = a * a; | ||
if (a_square + b_square == c_square && a + b + c === 1000) { | ||
return a * b * c; | ||
} | ||
} | ||
} | ||
} | ||
return 0; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters