Skip to content

Commit

Permalink
Solve p8 in lua
Browse files Browse the repository at this point in the history
  • Loading branch information
LivInTheLookingGlass committed Sep 10, 2024
1 parent 7a42539 commit c63aff5
Show file tree
Hide file tree
Showing 6 changed files with 93 additions and 2 deletions.
2 changes: 1 addition & 1 deletion README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ Olivia's Project Euler Solutions
| | Browser [#]_ | | |CodeQL| |br| |
| | | | |ESLint| |
+------------+----------------------------+--------+-------------------+
| Lua | Lua 5+ [#]_ | 10 | |Luai| |br| |
| Lua | Lua 5+ [#]_ | 11 | |Luai| |br| |
| | | | |LuaCheck| |
+------------+----------------------------+--------+-------------------+
| Python | CPython 3.6+ |br| | 80 | |Python| |br| |
Expand Down
2 changes: 1 addition & 1 deletion docs/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ Problems Solved
+-----------+-----------+------------+------------+------------+------------+------------+------------+------------+
|:prob:`007`|:c-d:`0007`|:cp-d:`0007`|:cs-d:`0007`| |:js-d:`0007`| |:py-d:`0007`|:rs-d:`0007`|
+-----------+-----------+------------+------------+------------+------------+------------+------------+------------+
|:prob:`008`|:c-d:`0008`|:cp-d:`0008`|:cs-d:`0008`|:ja-d:`0008`|:js-d:`0008`| |:py-d:`0008`|:rs-d:`0008`|
|:prob:`008`|:c-d:`0008`|:cp-d:`0008`|:cs-d:`0008`|:ja-d:`0008`|:js-d:`0008`|:lu-d:`0008`|:py-d:`0008`|:rs-d:`0008`|
+-----------+-----------+------------+------------+------------+------------+------------+------------+------------+
|:prob:`009`|:c-d:`0009`|:cp-d:`0009`|:cs-d:`0009`|:ja-d:`0009`|:js-d:`0009`|:lu-d:`0009`|:py-d:`0009`|:rs-d:`0009`|
+-----------+-----------+------------+------------+------------+------------+------------+------------+------------+
Expand Down
16 changes: 16 additions & 0 deletions docs/src/lua/p0008.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
Lua Implementation of Problem 8
===============================

View source code :source:`lua/src/p0008.lua`

Solution
--------

.. lua:function:: solution()
:return: The solution to problem 8
:rtype: number

.. literalinclude:: ../../../lua/src/p0008.lua
:language: Lua
:linenos:
1 change: 1 addition & 0 deletions lua/README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@ Problems Solved
- ☒ `2 <./src/p0002.lua>`__
- ☒ `4 <./src/p0004.lua>`__
- ☒ `6 <./src/p0006.lua>`__
- ☒ `8 <./src/p0008.lua>`__
- ☒ `9 <./src/p0009.lua>`__
- ☒ `17 <./src/p0017.lua>`__
- ☒ `28 <./src/p0028.lua>`__
Expand Down
73 changes: 73 additions & 0 deletions lua/src/p0008.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
-- Project Euler Problem 8
--
-- 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 {
solution = function()
string = ("73167176531330624919225119674426574742355349194934"
.. "96983520312774506326239578318016984801869478851843"
.. "85861560789112949495459501737958331952853208805511"
.. "12540698747158523863050715693290963295227443043557"
.. "66896648950445244523161731856403098711121722383113"
.. "62229893423380308135336276614282806444486645238749"
.. "30358907296290491560440772390713810515859307960866"
.. "70172427121883998797908792274921901699720888093776"
.. "65727333001053367881220235421809751254540594752243"
.. "52584907711670556013604839586446706324415722155397"
.. "53697817977846174064955149290862569321978468622482"
.. "83972241375657056057490261407972968652414535100474"
.. "82166370484403199890008895243450658541227588666881"
.. "16427171479924442928230863465674813919123162824586"
.. "17866458359124566529476545682848912883142607690042"
.. "24219022671055626321111109370544217506941658960408"
.. "07198403850962455444362981230987879927244284909188"
.. "84580156166097919133875499200524063689912560717606"
.. "05886116467109405077541002256983155200055935729725"
.. "71636269561882670428252483600823257530420752963450")

local answer = 0

for i = 1,(string.len(answer)-13),1
do
local product = 1
for j = 0,12,1
do
product = product * tonumber(string:sub(j, j))
end

if product > answer
then
answer = product
end
end

return answer
end
}
1 change: 1 addition & 0 deletions lua/test.lua
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ local problems = {
["p0002.lua"] = {4613732, false},
["p0004.lua"] = {906609, false},
["p0006.lua"] = {25164150, false},
["p0008.lua"] = {23514624000, false},
["p0009.lua"] = {31875000, false},
["p0017.lua"] = {21124, false},
["p0028.lua"] = {669171001, false},
Expand Down

0 comments on commit c63aff5

Please sign in to comment.