Instruções

Triângulos Heronianos

A fórmula de Hero para a área de um triângulo dado o comprimento de seus três lados a, b e c é dada por: $A = \\sqrt{s(s-a)(s-b)(s-c)},$ onde s é metade do perímetro do triângulo, ou seja, $s=\\frac{a+b+c}{2}.$ Os triângulos Heronianos são triângulos cujos lados e área são todos inteiros. Um exemplo é o triângulo com os lados 3, 4, 5, cuja área é 6 (e cujo perímetro é 12). Observe que qualquer triângulo cujos lados são todos números inteiros múltiplo de 3, 4, 5, como 6, 8, 10,, por exemplo, também será um triângulo Heroniano. Defina um triângulo Heroniano Primitivo como um triângulo Heroniano no qual o maior divisor comum de todos os três lados é 1 (unidade). Isso excluirá, por exemplo, o triângulo 6, 8, 10.

O que fazer:

Implemente uma função baseada na fórmula de Hero que retorna os primeiros <code>n<sub>th</sub></code> triângulos ordenados em um array de arrays.

Critérios de Aceitação:

Testes:

  • `heronianTriangle` deve ser uma função.
  • `heronianTriangle(10)` deve retornar `[[3, 4, 5], [5, 5, 6], [5, 5, 8], [4, 13, 15], [5, 12, 13], [9, 10, 17], [3, 25, 26], [7, 15, 20], [10, 13, 13], [8, 15, 17]]`
  • `heronianTriangle(15)` deve retornar `[[3, 4, 5], [5, 5, 6], [5, 5, 8], [4, 13, 15], [5, 12, 13], [9, 10, 17], [3, 25, 26], [7, 15, 20], [10, 13, 13], [8, 15, 17], [13, 13, 24], [6, 25, 29], [11, 13, 20], [5, 29, 30], [13, 14, 15]],`
  • `heronianTriangle(20)` deve retornar `[[3, 4, 5], [5, 5, 6], [5, 5, 8], [4, 13, 15], [5, 12, 13], [9, 10, 17], [3, 25, 26], [7, 15, 20], [10, 13, 13], [8, 15, 17], [13, 13, 24], [6, 25, 29], [11, 13, 20], [5, 29, 30], [13, 14, 15], [10, 17, 21], [7, 24, 25], [8, 29, 35], [12, 17, 25], [4, 51, 53]],`
  • `heronianTriangle(25)` deve retornar `[[3, 4, 5], [5, 5, 6], [5, 5, 8], [4, 13, 15], [5, 12, 13], [9, 10, 17], [3, 25, 26], [7, 15, 20], [10, 13, 13], [8, 15, 17], [13, 13, 24], [6, 25, 29], [11, 13, 20], [5, 29, 30], [13, 14, 15], [10, 17, 21], [7, 24, 25], [8, 29, 35], [12, 17, 25], [4, 51, 53], [19, 20, 37],[16, 17, 17], [17, 17, 30], [16, 25, 39], [13, 20, 21]]`

Console