A fórmula
Tomemos, por exemplo, o número 300
- Os fatores primos de 300 são
[2, 3, 5]
(números únicos que são fatores de 300 e primos) - Ao quadrado de cada um desses números, você
[4, 9, 25]
- Somando essa lista, você terá
4 + 9 + 25 = 38
- Finalmente subtraia essa soma (38) do seu número original
300-38 = 262
(este é o resultado)
Entrada
Sua entrada será um número inteiro positivo maior que 2. Você deve verificar todos os números de 2 ao valor de entrada (inclusive) e encontrar o número que produz o melhor resultado com a fórmula acima.
Resultado
Sua saída será dois números separados por um espaço, vírgula, nova linha ou o que o idioma permitir (a separação é necessária para distinguir os dois números). Eles podem ser enviados para um arquivo, stdout ou o que o seu idioma usar. Seu objetivo é encontrar o número no intervalo que produz a saída máxima ao executar a fórmula acima. O primeiro número exibido deve ser o número inicial (como 300) e o segundo número deve ser a saída que a fórmula produziu (como 262)
Casos de teste
Input: 3 Output: 2, -2
Input: 10 Output: 8, 4
Input: 50 Output: 48, 35
Input: 1000 Output: 1000, 971
Input: 9999 Output: 9984, 9802
Exemplo Trabalhado
Considere a entrada 10, devemos executar a fórmula para todos os números de 2 a 10 (inclusive)
Num PrimeFacs PrimeFacs^2 SumPrimeFacs^2 Result
2 [2] [4] 4 -2
3 [3] [9] 9 -6
4 [2] [4] 4 0
5 [5] [25] 25 -20
6 [2, 3] [4, 9] 13 -7
7 [7] [49] 49 -42
8 [2] [4] 4 4
9 [3] [9] 9 0
10 [2, 5] [4, 25] 29 -19
Como você pode ver, o melhor resultado é o 4
resultado da inserção do valor 8
na fórmula. Isso significa que a saída para uma entrada de 10
deve ser8, 4
Pontuação e Regras
As regras padrão para entradas e saídas se aplicam: Padrão para Code Golf: Métodos de entrada / saída
As brechas padrão são proibidas: Brechas que são proibidas por padrão Os
envios podem ser funções ou programas completos
O menor código em bytes ganha
50
: 35, 48
?