Seu trabalho é converter decimais de volta na soma das raízes quadradas dos números inteiros. O resultado deve ter uma precisão de pelo menos 6 dígitos decimais significativos.
Entrada :
Um número indicando o número de raízes quadradas e um decimal indicando o número a ser aproximado.
Exemplo de entrada:
2 3.414213562373095
Saída : números inteiros separados por espaços que, quando somados e adicionados ao quadrado, têm aproximadamente o decimal original com precisão de pelo menos 6 dígitos decimais significativos.
Zeros não são permitidos na solução.
Se houver várias soluções, você precisará imprimir apenas uma.
Exemplo de saída (em qualquer ordem):
4 2
Isso funciona porque Math.sqrt(4) + Math.sqrt(2) == 3.414213562373095.
Isso é código de golfe. O código mais curto (com bônus opcional) vence!
Sempre haverá uma solução, mas -10 se o seu programa imprimir "Não" quando não houver solução com números inteiros. Além disso, -10 se o seu programa imprimir todas as soluções (separadas por novas linhas ou ponto-e-vírgula ou o que for) em vez de apenas uma.
Casos de teste:
3 7.923668178593959 --> 6 7 8
2 2.8284271247461903 --> 2 2
5 5.0 --> 1 1 1 1 1
5 13.0 --> 4 4 9 9 9 --> 81 1 1 1 1 --> 36 9 4 1 1 etc. [print any, but print all for the "all solutions bonus"]
E sim, seu programa precisa terminar em um tempo finito usando memória finita em qualquer máquina razoável. Não pode simplesmente funcionar "em teoria", é preciso ser capaz de testá-lo.
6 7 8segundo bônus?