Considere um triângulo ABC, em que cada lado tem comprimento inteiro (um triângulo integral ). Defina uma mediana de ABC como um segmento de linha de um vértice até o ponto médio do lado oposto. Na figura abaixo, os segmentos de linha vermelha representam as medianas. Observe que qualquer triângulo tem três medianas.
Seja n um número inteiro positivo. Quantos triângulos integrais não degenerados com comprimento lateral menor ou igual a n têm pelo menos uma mediana integral?
Desafio
Escreva um programa para calcular o número de triângulos integrais com pelo menos uma mediana integral para um determinado comprimento lateral máximo n . A ordem dos comprimentos laterais não importa, isto é, <6,6,5> representa o mesmo triângulo que <5,6,6> e deve ser contada apenas uma vez. Exclua triângulos degenerados como <1,2,3>.
Pontuação
O maior n para o qual seu programa pode gerar o número de triângulos em 60 segundos na minha máquina é sua pontuação. O programa com a pontuação mais alta vence. Minha máquina é uma Sony Vaio SVF14A16CLB, Intel Core i5, 8 GB de RAM.
Exemplos
Deixe- T ( N ) ser o programa de entrada com N .
T(1) = 0
T(6) = 1
T(20) = 27
T(22) = 34
Observe que T (1) = T (2) = T (3) = T (4) = T (5) = 0 porque nenhuma combinação de lados integrais produzirá uma mediana integral. No entanto, quando chegamos a 6, podemos ver que uma das medianas do triângulo <5,5,6> é 4, então T (6) = 1.
Observe também que T (22) é o primeiro valor no qual a contagem dupla se torna um problema: o triângulo <16,18,22> tem medianas 13 e 17 (e 2sqrt (85)).
Computando as medianas
As medianas de um triângulo podem ser calculadas pelas seguintes fórmulas:
Current top score: Sp3000 - 7000 points - C