Files
freeCodeCamp/curriculum/challenges/japanese/10-coding-interview-prep/project-euler/problem-299-three-similar-triangles.md
2022-01-23 00:08:20 +09:00

2.1 KiB

id, title, challengeType, forumTopicId, dashedName
id title challengeType forumTopicId dashedName
5900f4971000cf542c50ffaa 問題 299: 3 つの相似三角形 5 301951 problem-299-three-similar-triangles

--description--

整数座標を持つ、次の 4 つの点が選択されます。

A(a, 0), B(b, 0), C(0, c), D(0, d) (0 < a < b かつ 0 < c < d)

3 つの三角形 ABP, CDP, BDP がすべて相似形になるように、同じく整数座標を持つ点 P を線 AC 上で選びます。

点 A, B, C, D, P で作られる 3 つの三角形 ABP, CDP, BDP

a = c のときのみ 3 つの三角形が相似形になり得るということは、容易に証明できます。

つまり、a=c とすると、(整数座標を持つ) 点 PAC 上に少なくとも 1 つ存在して 3 つの三角形 ABP, CDP, BDP がすべて相似形になるような、三つ組数 (a, b, d) を探します。

例えば、(a, b, d) = (2, 3, 4) の場合、点 P(1, 1) が上の条件を満たすことを容易に確認できます。 注意点として、三つ組数 (2,3,4) と (2,4,3) は点 P(1, 1) を共有しますが相異なる組とみなされます。

b + d < 100 の場合、点 P が存在するような相異なる三つ組数 (a, b, d) は 92 個存在します。

b + d < 100\\,000 の場合、点 P が存在するような相異なる三つ組数 (a, b, d) は 320471 個存在します。

b + d < 100\\,000\\,000 の場合、点 P が存在するような相異なる三つ組数 (a, b, d) はいくつ存在しますか。

--hints--

threeSimilarTriangles()549936643 を返す必要があります。

assert.strictEqual(threeSimilarTriangles(), 549936643);

--seed--

--seed-contents--

function threeSimilarTriangles() {

  return true;
}

threeSimilarTriangles();

--solutions--

// solution required