To install and use, follow these steps:
julia> ] # enters the package mode
pkg> add ProjectEuler
julia> using ProjectEuler
Currently, this package provides only one function: question
. However, there are plans to
support two more important ones, as indicated here.
The question
function takes only one argument, an Integer
value, and then it returns
a struct of type Problem
. The content
field of the returned Problem
struct is edited to
render it as identical as possible to its appearance on https://projecteuler.net. An example
is shown below:
Some problems have not been edited yet because they require an image or a complex
mathematical equation (which, unfortunately, Julia's REPL cannot render at present).
Therefore, passing certain values to question
will result in an error.
To fully experience all the questions, you may need to increase the width of your terminal screen to a value equal to or greater than 115. You can do this by dragging either the left or right end of your terminal.
You can use the function displaysize
to view the lines (height) and columns (width) of
your terminal screen. The returned tuple represents the lines and columns of your terminal
screen, respectively:
julia> displaysize(stdout)
(37, 115)
We welcome contributions to this package! Users are encouraged to contribute by implementing new features and identifying/fixing bugs through pull requests (PRs) on this GitHub repository.
Currently, there are many unedited problems in the unedited_questions.txt file. We invite users with artistic skills in the REPL to take a look at these problems and see how they can render them in the Julia REPL to look exactly as they do on https://projecteuler.net.
When contributing, please ensure that your code adheres to the workflow and coding standards used in this package and that it is thoroughly tested. We also ask that you provide clear and concise documentation, including examples of how to use the new features.
Thank you for considering contributing to this package, and we look forward to your contributions!
I regret to inform you that, due to time constraints, I am no longer able to maintain the package/repository in question. I have thoroughly enjoyed working on it and providing updates thus far.
However, I believe in the power of open-source collaboration and would like to offer an opportunity to anyone who is passionate about maintaining this package/repository to take over its ownership. If you are interested in becoming the new maintainer, kindly notify me, and I will gladly transfer ownership to you.
I appreciate your understanding and support throughout this journey. Thank you.