Powinieneś napisać program lub funkcję, która odbiera liczby całkowite jako dane wejściowe i wyjściowe lub zwraca dwie liczby całkowite, których suma jest pierwsza.
Jest jeszcze jeden wymóg: żadna liczba nie może być częścią wyniku dla dwóch różnych danych wejściowych .
Detale
- Powinieneś być w stanie obsłużyć dane wejściowe przynajmniej dla zakresu
-32768 .. 32767
(włącznie). - Jeśli twój typ danych nie obsługuje dowolnych liczb całkowitych, nie ma problemu, ale algorytm powinien działać teoretycznie na dowolne duże i małe liczby.
Przykłady
Każdy blok pokazuje część poprawnego lub niepoprawnego rozwiązania w formacie input => output
.
1 => 6 -5
2 => -2 4
15 => 20 -5
Incorrect, as `-5` is used in two outputs.
-5 => -15 10
0 => 0 0
1 => 5 6
2 => -5 7
Incorrect, as `5 + 6` isn't `1`.
-1 => -1 0
0 => 6 -6
2 => 1 1
Can be correct if other outputs doesn't collide.
To jest golf golfowy, więc wygrywa najkrótszy wpis.
Odpowiedzi:
Pyth, 8 bajtów
Demonstracja. Odpowiednik kodu Python 2:
Dane wyjściowe mają formę
(-n**3, n+n**3)
Niektóre wyjścia:
Te różnią się, ponieważ kostki są oddalone na tyle daleko, że dodanie
n
don**3
nie wystarcza, aby przejść przez szczelinę do kolejnej kostki:n**3 < n+n**3 < (n+1)**3
na dodatnien
i symetrycznie na ujemnyn
.źródło
,
, dwie linie wydają się być dozwolone.J
zadanie pomija drukowanie?-
w pyth nie jest jednostronnym operatorem negacji_
, więc_J^Q3+QJ
działa zgodnie z oczekiwaniami.J
nie być na zewnątrz. Dzięki za pogłaskanie mnie w tej sprawie.Bałwan 0.1.0 , 101 znaków
Wejście na STDIN, wyjście rozdzielone spacją na STDOUT.
Używa tej samej metody co odpowiedź Isaacga.
Skomentowana wersja z nowymi wierszami dla „czytelności”:
Komentarz do pierwszego rozwiązania Snowman w PPCG: Myślę, że mój projekt polegał na tym, aby mój język był jak najbardziej zagmatwany.
To mogło być znacznie krótsze, ale jestem idiotą i zapomniałem zaimplementować liczby ujemne dla parsowania ciągów -> liczb. Musiałem więc ręcznie sprawdzić, czy był to
-
pierwszy znak i usunąć go, jeśli tak jest.źródło
Pyth,
1511 bajtów4 bajty dzięki @Jakube
Demonstracja.
To mapy w następujący sposób:
I tak dalej, zawsze angażując
n^2
in^2 + n
, plus lub minus.źródło
APL, 15 bajtów
To tworzy nienazwaną funkcję monadyczną, która zwraca parę -n ^ 3 (
-⍵*3
), n + n ^ 3 (⍵+⍵*3
).Możesz spróbować online .
źródło
Pyth -
1110 bajtówWystarczy pomnożyć przez
10e10 i -10e10 + 1Dzięki @xnor za pokazanie mi, że mogę użyćCG
tej liczby.Wypróbuj online tutaj .
źródło
CG
.O ,
17 159 bajtówKorzysta z niektórych nowych funkcji O.
Starsza wersja
źródło
Python 3,
2927Edycja: nie spełnia wymagań drugiego punktu „Szczegóły”
Bonus: działa od -99998 do 99998 włącznie
Spowoduje to utworzenie anonimowej funkcji *, której można użyć, umieszczając ją w nawiasach, a następnie umieszczając argument w nawiasach w następujący sposób:
* Dzięki @ vioz- za zasugerowanie tego.
Przykładowe wejście / wyjście:
źródło
f=
i pozostawić jako funkcję anonimową, co nadal jest poprawną odpowiedzią. Następnie możesz zmniejszyć liczbę bajtów do 27 :)(lambda n:[99999*n,-99998*n])(99999)
i(lambda n:[99999*n,-99998*n])(-99998)
zderzą się w teorii (i w praktyce).Haskell, 16 bajtów
Bezwstydnie skopiowałem metodę @ xnor. Prawdopodobnie nie ma nic lepszego niż to.
źródło