Все задачи
Средне Решено: 0 Процент решений: 0%

Произведение сторон прямоугольного треугольника

Найдите наибольшее произведение сторон целочисленного прямоугольного треугольника с заданным периметром.

Найдите такие положительные целые числа a < b < c, что a² + b² = c² и a + b + c = perimeter. Верните наибольшее произведение a × b × c среди подходящих треугольников, либо −1, если таких нет. Эта задача обобщает исходную задачу с фиксированным периметром и явно учитывает случаи с несколькими ответами.

Реализуйте функцию pythagorean_product(perimeter).

Ввод

perimeter: Требуемая сумма трёх сторон.

Вывод

Верните наибольшее произведение, либо −1, если подходящих треугольников нет.

Ограничения

3 ≤ perimeter ≤ 100 000. Произведения помещаются в знаковый 64-битный тип.

Примеры

Пример 1
Ввод:
perimeter = 30

Ожидаемый вывод:
expected = 780
Ввод:
long long perimeter = 30;

Ожидаемый вывод:
long long expected = 780;
Ввод:
long perimeter = 30;

Ожидаемый вывод:
long expected = 780;

Пояснение

Треугольник (5, 12, 13): 25 + 144 = 169 и 5 + 12 + 13 = 30. Его произведение — 780.

Пример 2
Ввод:
perimeter = 11

Ожидаемый вывод:
expected = -1
Ввод:
long long perimeter = 11;

Ожидаемый вывод:
long long expected = -1;
Ввод:
long perimeter = 11;

Ожидаемый вывод:
long expected = -1;

Пояснение

Нет возрастающих положительных целых сторон прямоугольного треугольника с суммой 11.

Ссылки

Это задание адаптировано для CodeUtility. Следуйте условию и ограничениям выше.

Учитесь у других

Решения сообщества

Пока нет опубликованных решений. Решите задание, чтобы поделиться первым.