47 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			47 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| ---
 | |
| id: 5900f50c1000cf542c51001e
 | |
| title: 'Problem 415: Titanic sets'
 | |
| challengeType: 5
 | |
| forumTopicId: 302084
 | |
| dashedName: problem-415-titanic-sets
 | |
| ---
 | |
| 
 | |
| # --description--
 | |
| 
 | |
| A set of lattice points $S$ is called a titanic set if there exists a line passing through exactly two points in $S$.
 | |
| 
 | |
| An example of a titanic set is $S = \\{(0, 0), (0, 1), (0, 2), (1, 1), (2, 0), (1, 0)\\}$, where the line passing through (0, 1) and (2, 0) does not pass through any other point in $S$.
 | |
| 
 | |
| On the other hand, the set {(0, 0), (1, 1), (2, 2), (4, 4)} is not a titanic set since the line passing through any two points in the set also passes through the other two.
 | |
| 
 | |
| For any positive integer $N$, let $T(N)$ be the number of titanic sets $S$ whose every point ($x$, $y$) satisfies $0 ≤ x$, $y ≤ N$. It can be verified that $T(1) = 11$, $T(2) = 494$, $T(4) = 33\\,554\\,178$, $T(111)\bmod {10}^8 = 13\\,500\\,401$ and $T({10}^5)\bmod {10}^8 = 63\\,259\\,062$.
 | |
| 
 | |
| Find $T({10}^{11})\bmod {10}^8$.
 | |
| 
 | |
| # --hints--
 | |
| 
 | |
| `titanicSets()` should return `55859742`.
 | |
| 
 | |
| ```js
 | |
| assert.strictEqual(titanicSets(), 55859742);
 | |
| ```
 | |
| 
 | |
| # --seed--
 | |
| 
 | |
| ## --seed-contents--
 | |
| 
 | |
| ```js
 | |
| function titanicSets() {
 | |
| 
 | |
|   return true;
 | |
| }
 | |
| 
 | |
| titanicSets();
 | |
| ```
 | |
| 
 | |
| # --solutions--
 | |
| 
 | |
| ```js
 | |
| // solution required
 | |
| ```
 |