47 lines
1.1 KiB
Markdown
47 lines
1.1 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) = 33554178, T(111) mod 108 = 13500401 and T(105) mod 108 = 63259062.
|
||
|
|
||
|
Find T(1011) mod 108.
|
||
|
|
||
|
# --hints--
|
||
|
|
||
|
`euler415()` should return 55859742.
|
||
|
|
||
|
```js
|
||
|
assert.strictEqual(euler415(), 55859742);
|
||
|
```
|
||
|
|
||
|
# --seed--
|
||
|
|
||
|
## --seed-contents--
|
||
|
|
||
|
```js
|
||
|
function euler415() {
|
||
|
|
||
|
return true;
|
||
|
}
|
||
|
|
||
|
euler415();
|
||
|
```
|
||
|
|
||
|
# --solutions--
|
||
|
|
||
|
```js
|
||
|
// solution required
|
||
|
```
|