yaworsw/euler-manager

View on GitHub
data/problems/299.yml

Summary

Maintainability
Test Coverage
---
:id: 299
:name: Three similar triangles
:url: https://projecteuler.net/problem=299
:content: "Four points with integer coordinates are selected:  \nA(<var>a</var>,&nbsp;0),
  B(<var>b</var>,&nbsp;0), C(0,&nbsp;<var>c</var>) and D(0,&nbsp;<var>d</var>), with
  0&nbsp;\\<&nbsp;<var>a</var>&nbsp;\\<&nbsp;<var>b</var> and 0&nbsp;\\<&nbsp;<var>c</var>&nbsp;\\<&nbsp;<var>d</var>.
  \ \nPoint P, also with integer coordinates, is chosen on the line AC so that the
  three triangles ABP, CDP and BDP are all <dfn title=\"Have equal angles\">similar</dfn>.\n\n
  ![p299_ThreeSimTri.gif]({{ images_dir }}/p299_ThreeSimTri.gif)\n\nIt is easy to
  prove that the three triangles can be similar, only if <var>a</var>=<var>c</var>.\n\nSo,
  given that <var>a</var>=<var>c</var>, we are looking for triplets (<var>a</var>,<var>b</var>,<var>d</var>)
  such that at least one point P (with integer coordinates) exists on AC, making the
  three triangles ABP, CDP and BDP all similar.\n\nFor example, if (<var>a</var>,<var>b</var>,<var>d</var>)=(2,3,4),
  it can be easily verified that point P(1,1) satisfies the above condition. Note
  that the triplets (2,3,4) and (2,4,3) are considered as distinct, although point
  P(1,1) is common for both.\n\nIf <var>b</var>+<var>d</var>&nbsp;\\<&nbsp;100, there
  are 92 distinct triplets (<var>a</var>,<var>b</var>,<var>d</var>) such that point
  P exists.  \nIf <var>b</var>+<var>d</var>&nbsp;\\<&nbsp;100 000, there are 320471
  distinct triplets (<var>a</var>,<var>b</var>,<var>d</var>) such that point P exists.\n\nIf
  <var>b</var>+<var>d</var>&nbsp;\\<&nbsp;100 000 000, how many distinct triplets
  (<var>a</var>,<var>b</var>,<var>d</var>) are there such that point P exists?\n\n"