Весела пара еквівалентів - 1 + 5 = 2 · 3 і 1 · 5 = 2 + 3 . Таких багато, ще один - 1 + 1 + 8 = 1 · 2 · 5 і 1 · 1 · 8 = 1 + 2 + 5 . Загалом добуток з n додатних цілих чисел дорівнює сумі n позитивних цілих чисел, і навпаки.
У цьому виклику ви повинні створити всі такі комбінації натуральних чисел для введення n> 1 , виключаючи перестановки. Ви можете вивести їх у будь-якому розумному форматі. Наприклад, усі можливі рішення для n = 3 :
(2, 2, 2) (1, 1, 6)
(1, 2, 3) (1, 2, 3)
(1, 3, 3) (1, 1, 7)
(1, 2, 5) (1, 1, 8)
Програма, яка може генерувати найбільшу кількість комбінацій для найвищого n за одну хвилину на моїй 2 Гб оперативної пам’яті , 64-розрядні Intel Ubuntu виграє ноутбуків. Якщо у вашій відповіді використовується більше 2 Гб оперативної пам’яті або написана мовою, яку я не можу перевірити за допомогою вільно доступного програмного забезпечення, я не буду оцінювати вашу відповідь. Я перевіряю відповіді через два тижні і виберу переможця. Пізніше відповіді, які не є конкурентами, можна все-таки розмістити.
Оскільки невідомо, що таке повний набір рішень для всіх n , ви можете розміщувати відповіді, які генерують неповні рішення. Однак якщо інша відповідь породжує (більше) повне рішення, навіть якщо їх максимальний п менший , ця відповідь виграє.
Для уточнення, ось процес балу, щоб визначити переможця:
Я перевіряю вашу програму з n = 2, n = 3 і т. Д. ... Я зберігаю всі ваші виходи і зупиняюсь, коли ваша програма займає більше хвилини або більше 2 Гб оперативної пам’яті. Кожен раз, коли програма запускається для заданого вводу n, вона буде припинятися, якщо це займе більше 1 хвилини.
Я дивлюся на всі результати для всіх програм для n = 2. Якщо програма дала менш допустимі рішення, ніж інша, ця програма усувається.
Повторіть крок 2 для n = 3, n = 4 і т.д. ... Виграє остання програма програми.