Um par divertido de equivalências é 1 + 5 = 2 · 3 e 1 · 5 = 2 + 3 . Existem muitos como estes, outro é 1 + 1 + 8 = 1 · 2 · 5 e 1 · 1 · 8 = 1 + 2 + 5 . Em geral, um produto de n números inteiros positivos é igual a uma soma de n números inteiros positivos e vice-versa.
Neste desafio, você deve gerar todas essas combinações de números inteiros positivos para uma entrada n> 1 , excluindo permutações. Você pode produzi-los em qualquer formato razoável. Por exemplo, todas as soluções possíveis para n = 3 são:
(2, 2, 2) (1, 1, 6)
(1, 2, 3) (1, 2, 3)
(1, 3, 3) (1, 1, 7)
(1, 2, 5) (1, 1, 8)
O programa que pode gerar o maior número de combinações para o n mais alto em um minuto no meu laptop Intel Ubuntu de 64 GB de 2 GB vence. Se sua resposta usa mais de 2 GB de RAM ou está escrita em um idioma que não consigo testar com software disponível gratuitamente, não pontuarei sua resposta. Vou testar as respostas daqui a duas semanas e escolher o vencedor. Respostas não concorrentes posteriores ainda podem ser postadas, é claro.
Como não se sabe quais são os conjuntos completos de soluções para todos os n , você pode postar respostas que geram soluções incompletas. No entanto, se outra resposta gerar uma solução (mais) completa, mesmo que seu n máximo seja menor , essa resposta vence.
Para esclarecer, aqui está o processo de pontuação para decidir o vencedor:
Testarei seu programa com n = 2, n = 3, etc ... Armazeno todas as suas saídas e paro quando seu programa leva mais de um minuto ou mais de 2 GB de RAM. Cada vez que o programa é executado para uma determinada entrada n, ele será encerrado se demorar mais de 1 minuto.
Examino todos os resultados de todos os programas para n = 2. Se um programa produziu soluções menos válidas que outro, esse programa é eliminado.
Repita a etapa 2 para n = 3, n = 4, etc ... O último programa em pé vence.