* fix(curriculum): tests quotes * fix(curriculum): fill seed-teardown * fix(curriculum): fix tests and remove unneeded seed-teardown
		
			
				
	
	
		
			84 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			84 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| ---
 | |
| id: 5900f52e1000cf542c510041
 | |
| challengeType: 5
 | |
| title: 'Problem 450: Hypocycloid and Lattice points'
 | |
| ---
 | |
| 
 | |
| ## Description
 | |
| <section id='description'>
 | |
| A hypocycloid is the curve drawn by a point on a small circle rolling inside a larger circle. The parametric equations of a hypocycloid centered at the origin, and starting at the right most point is given by:
 | |
| $x(t) = (R - r) \cos(t) + r \cos(\frac {R - r} r t)$
 | |
| $y(t) = (R - r) \sin(t) - r \sin(\frac {R - r} r t)$
 | |
| Where R is the radius of the large circle and r the radius of the small circle.
 | |
| 
 | |
| 
 | |
| Let $C(R, r)$ be the set of distinct points with integer coordinates on the hypocycloid with radius R and r and for which there is a corresponding value of t such that $\sin(t)$ and $\cos(t)$ are rational numbers.
 | |
| 
 | |
| Let $S(R, r) = \sum_{(x,y) \in C(R, r)} |x| + |y|$ be the sum of the absolute values of the x and y coordinates of the points in $C(R, r)$.
 | |
| 
 | |
| 
 | |
| Let $T(N) = \sum_{R = 3}^N \sum_{r=1}^{\lfloor \frac {R - 1} 2 \rfloor} S(R, r)$ be the sum of $S(R, r)$ for R and r positive integers, $R\leq N$  and $2r < R$.
 | |
| 
 | |
| 
 | |
| You are given:C(3, 1) =
 | |
| {(3, 0), (-1, 2), (-1,0), (-1,-2)}
 | |
| C(2500, 1000) =
 | |
| {(2500, 0), (772, 2376), (772, -2376), (516, 1792),
 | |
|  (516, -1792), (500, 0), (68, 504), (68, -504),(-1356, 1088), (-1356, -1088), (-1500, 1000), (-1500, -1000)}
 | |
| 
 | |
| Note: (-625, 0) is not an element of C(2500, 1000) because $\sin(t)$ is not a rational number for the corresponding values of t.
 | |
| 
 | |
| 
 | |
| S(3, 1) = (|3| + |0|) + (|-1| + |2|) + (|-1| + |0|) + (|-1| + |-2|) = 10
 | |
| 
 | |
| T(3) = 10; T(10) = 524 ;T(100) = 580442; T(103) = 583108600.
 | |
| 
 | |
| 
 | |
| Find T(106).
 | |
| </section>
 | |
| 
 | |
| ## Instructions
 | |
| <section id='instructions'>
 | |
| 
 | |
| </section>
 | |
| 
 | |
| ## Tests
 | |
| <section id='tests'>
 | |
| 
 | |
| ```yml
 | |
| tests:
 | |
|   - text: <code>euler450()</code> should return 583333163984220900.
 | |
|     testString: assert.strictEqual(euler450(), 583333163984220900, '<code>euler450()</code> should return 583333163984220900.');
 | |
| 
 | |
| ```
 | |
| 
 | |
| </section>
 | |
| 
 | |
| ## Challenge Seed
 | |
| <section id='challengeSeed'>
 | |
| 
 | |
| <div id='js-seed'>
 | |
| 
 | |
| ```js
 | |
| function euler450() {
 | |
|   // Good luck!
 | |
|   return true;
 | |
| }
 | |
| 
 | |
| euler450();
 | |
| ```
 | |
| 
 | |
| </div>
 | |
| 
 | |
| 
 | |
| 
 | |
| </section>
 | |
| 
 | |
| ## Solution
 | |
| <section id='solution'>
 | |
| 
 | |
| ```js
 | |
| // solution required
 | |
| ```
 | |
| </section>
 |