2.1 KiB
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 = c
のときのみ 3 つの三角形が相似形になり得るということは、容易に証明できます。
つまり、a=c
とすると、(整数座標を持つ) 点 P
が AC
上に少なくとも 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