Розглянемо трикутник ABC, де кожна сторона має цілу довжину ( інтегральний трикутник ). Визначити медіану з ABC бути відрізок від вершини до середини протилежної сторони. На малюнку нижче сегменти червоної лінії представляють медіани. Зауважте, що будь-який заданий трикутник має три медіани.
Нехай n - деяке натуральне число. Скільки невироджених інтегральних трикутників з кожною довжиною сторони менше або дорівнює n мають принаймні одну інтегральну медіану?
Виклик
Напишіть програму для обчислення кількості інтегральних трикутників принаймні однією цілісною медіаною для заданої максимальної довжини сторони n . Порядок бічних довжин не має значення, тобто <6,6,5> являє собою той же трикутник, що і <5,6,6>, і його слід рахувати лише один раз. Виключіть вироджені трикутники, такі як <1,2,3>.
Оцінка балів
Найбільший п, за який ваша програма може за 60 секунд генерувати кількість трикутників на моїй машині - це ваш рахунок. Перемагає програма з найвищим балом. Моя машина - це Sony Vaio SVF14A16CLB, Intel Core i5, 8 Гб оперативної пам’яті.
Приклади
Нехай Т ( Н ) бути програмою з вхідним N .
T(1) = 0
T(6) = 1
T(20) = 27
T(22) = 34
Зауважимо, що T (1) = T (2) = T (3) = T (4) = T (5) = 0, оскільки жодна комбінація цілих сторін не дасть інтегральної медіани. Однак, як тільки ми дістаємось до 6, ми можемо побачити, що одна з медіанів трикутника <5,5,6> дорівнює 4, тому T (6) = 1.
Зауважимо також, що T (22) - це перше значення, при якому подвійний підрахунок стає проблемою: трикутник <16,18,22> має медіани 13 і 17 (і 2sqrt (85)).
Обчислення медіанів
Медіани трикутника можна обчислити за такими формулами:
Current top score: Sp3000 - 7000 points - C