Skip to content

Latest commit

 

History

8 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ProjectEuler

My Project Euler solutions

Motivations

Although Project Euler clearly states that it would rather not have mathematicians share its answers:

Please do not deprive others of going through the same process [of solving the question] by publishing your solution outside of Project Euler.

I have decided to publish mine. These are published only in an educational light, and in a less convenient way to get the answer than some other math blogs, so I deem it alright. Please do not simply copy these answers; if you wish to view the source codes, use it solely for enlightenment on my solutions.

Anatomy of a Solution Page

The template that I am using for each solution HTML file is as follows. It includes a stylesheet and sufficient scripts. Here is an example: project euler question 65.

<!DOCTYPE html>
<html>
  <body onload="links('Convergents of e', '65', 'sum')">
  	<script src="res/bignumber.min.js"></script>
	<script src="res/XBigFraction.js"></script>
    <script id="script">// javascript
		var t1 = performance.now();
		BigNumber.config({EXPONENTIAL_AT:500});
		for(var i = Math.floor(100/3), e = new XBigFraction(0, 1); i > 0; e = new XBigFraction(1,1).divide(new XBigFraction(1,1).add(new XBigFraction(1,1).divide(new XBigFraction(2*i, 1).add(new XBigFraction(1,1).divide(new XBigFraction(1,1).add(e)).reduce())).reduce())).reduce(), i--);
		for(var i = 0, sum = 0, numerator = e.add(new XBigFraction(2, 1)).numerator.toString().split(""); i < numerator.length; sum += parseInt(numerator[i]), i++);
		var t2 = performance.now();
		</script>
		~Finds the numerator of the (simplified) 100th convergent of <code><em>e</em></code> (using the formula <code><em>e</em> = [2; 1,2,1, 1,4,1, 1,6,1 , ... , 1,2k,1, ...]</code>)~
		#Uses my new library <a href="res/XBigFraction.js">XBigFraction.js</a>. It can handle large fractions (needs to include <a href="res/bignumber.min.js">bignumber.min.js</a> first, however). I also made a simpler version at <a href="res/XFraction.js">XFraction.js</a>.#
		<script src="res/euler.js"></script>
	</body>
</html>
  • <body onload="links('Convergents of e', '65', 'sum')"> Title, ID, answer
  • <script src="{SCRIPT_SRC}"></script> Dependencies
  • <script id="script"> ... </script> Main script to run
  • // javascript Language of script (as of now, only JS)
  • ~Finds the numerator ... ~ Description
  • #Uses my new ... # Note (can have multiple)
  • <script src="res/euler.js"></script> Formatting script

Where's the head? Where are the styles?

The <head>, including styles, are automatically generated by the euler.js script.

Other Notes

  • I include my library, xmath.js, on many of these questions.
  • When files are given by Project Euler in its questions to analyze or parse, I often used a modified form, either placed directly in the HTML file or in a separate file that is retrieved using an AJAX GET request (performed with a synchronous jQuery $.get() function). Usually, it is formatted to be a (valid) JSON file.

About

My Project Euler solutions

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages