Twoim zadaniem jest przekształcenie ułamków dziesiętnych z powrotem w sumę pierwiastków kwadratowych liczb całkowitych. Wynik musi mieć dokładność co najmniej 6 cyfr dziesiętnych.
Wejście :
Liczba wskazująca liczbę pierwiastków kwadratowych i liczba dziesiętna wskazująca liczbę do przybliżenia.
Przykładowe dane wejściowe:
2 3.414213562373095
Dane wyjściowe : liczby całkowite oddzielone spacjami, które po zrootowaniu i dodaniu do kwadratu są w przybliżeniu pierwotne po przecinku z dokładnością do co najmniej 6 cyfr po przecinku.
Zero nie jest dozwolone w roztworze.
Jeśli istnieje wiele rozwiązań, wystarczy wydrukować tylko jedno.
Przykładowe dane wyjściowe (w dowolnej kolejności):
4 2
Działa to, ponieważ Math.sqrt(4) + Math.sqrt(2) == 3.414213562373095.
To jest kod golfowy. Najkrótszy kod (z opcjonalnym bonusem) wygrywa!
Zawsze znajdzie się rozwiązanie, ale -10, jeśli twój program wypisze „Nie”, gdy nie ma rozwiązania z liczbami całkowitymi. Ponadto -10, jeśli program wypisze wszystkie rozwiązania (oddzielone znakiem nowej linii lub średnikiem lub czymkolwiek) zamiast tylko jednego.
Przypadki testowe:
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"]
I tak, twój program musi zakończyć się w skończonym czasie przy użyciu skończonej pamięci na dowolnej rozsądnej maszynie. Nie może po prostu działać „teoretycznie”, musisz być w stanie to przetestować.
6 7 8drugiej premii?