Wkład
brak danych wejściowych do tego wyzwania
Wyzwanie
Napisz kod wyjściowy:
Pierwsze 10 liczb pierwszych, których suma ich cyfr jest równa liczbie bajtów twojego kodu
Przykłady
Powiedzmy, że twój kod jest tym, Co&%423@k"oo"
który 13 bytes
kod musi wypisać [67, 139, 157, 193, 229, 283, 337, 373, 409, 463]
, to pierwsze 10 liczb pierwszych, których suma ... ok, rozumiesz!
Jeśli masz kod 8 bytes
, musisz wygenerować dane wyjściowe[17, 53, 71, 107, 233, 251, 431, 503, 521, 701]
Zasady
Musisz używać tylko pierwszych 10 ^ 8 liczb pierwszych,
co oznacza, że wszystkie twoje liczby muszą być <2038074743 = 10 ^ 8-ta liczba pierwsza
Jeśli nie możesz znaleźć 10 liczb pierwszych w tym zakresie, które pasują do twoich bajtów, będziesz musiał dostosować swój kod (być może nawet będziesz musiał dodać kilka bajtów!), Aby znaleźć „ działającą liczbę bajtów ”
Po prostu wypisz 10 liczb pierwszych w dowolny sposób
To jest golf golfowy , więc wygrywa najkrótszy kod w bajtach!
Odpowiedzi:
Neim ,
1087 bajtów-1 bajt dzięki tylko ASCII.
Wypróbuj online!
Wyjścia:
To (cóż, przynajmniej podejście) jest niestosowne.
Wyjaśnienie
źródło
νᛦ𝐋Λ𝐬7𝔼
dla 7 ... edytuj:π
->ν
: pGalaretka , 14 bajtów
Wypróbuj online!
To drukuje:
Jak to działa
źródło
Pyth , 14 bajtów
Wypróbuj tutaj.
To 14 bajtów i wydruków:
Pyth , 16 bajtów
Wypróbuj tutaj!
Zauważ, że może to być 15 bajtów:
.f&qssM`Z16P_ZTZ
ale nie ma liczb pierwszych, które mają 15 jako sumę ich cyfr, ponieważ15
jest on podzielny przez3
, co oznaczałoby, że liczba byłaby podzielna przez3
, a zatem nie byłaby liczbą pierwszą.Ma długość 16 bajtów i drukuje:
W jaki sposób?
Wyjaśnienie 1
Wyjaśnienie 2
źródło
Łuska , 13 bajtów
Wypróbuj online!
Wyjaśnienie
źródło
Haskell ,
7771 bajtówWypróbuj online!
Zaoszczędzono 6 bajtów dzięki Laikoni
Dla 71 bajtów:
1999999999 jest liczbą z maksymalną sumą cyfr w dozwolonym zakresie, a suma ta wynosi 82. Każdy program, który ma więcej niż 82 bajty, nie spełni warunku. Mam nadzieję, że 77 bajtów jest w porządku, ale nie wiem (nadal działa na moim komputerze).
EDYCJA: nieco zoptymalizowana wersja dała dla 77 bajtów:
źródło
Galaretka ,
1413 bajtówWypróbuj online!
W jaki sposób?
źródło
Brachylog , 13 bajtów
Wypróbuj online!
źródło
05AB1E , 10 bajtów
Wypróbuj online!
}
Stosuje się jako wypełniacz, od 9 jest nieważny liczba bajtów.Wydajność:
[19, 37, 73, 109, 127, 163, 181, 271, 307, 433]
Wyjaśnienie
Prawie 8 bajtów
Byłoby to ważne, gdyby można było odegrać jeszcze jeden bajt.
Wypróbuj online!
Wydajność:
[17, 53, 71, 107, 233, 251, 431, 503, 521, 701]
Wyjaśnienie
źródło
Mathematica, 52 bajty
dzięki za @ Nie drzewo na -6 bajtów
źródło
Select
ile rzeczy chcesz zwrócić:Select[Prime@Range[10^6],Tr@IntegerDigits@#==52&,10]
Select[Prime@Range[77705],Tr@IntegerDigits@#==50&]
J, 29 bajtów
Wypróbuj online!
Zdecydowanie działa na REPL, prawdopodobnie działa również zwykły program (nie jestem pewien, jak J wypisuje, aby programy były szczere).
Pierwsze przejście, niezbyt idealne, ale nie mogę wymyślić bardziej sprytnych podejść. Zamierzam zbadać twarde kodowanie mniejszej sekwencji.
Wyjaśnienie
872 gwarantuje, że zostanie wykorzystanych tylko pierwszych 10 liczb pierwszych, których suma cyfrowa wynosi 29.
źródło
V ,
7371 bajtówWypróbuj online!
Prosta kompresja zamiany podciągu - sprawdziłem wszystkie możliwe wyniki odpowiedzi, a następnie wykonałem test „który z nich ma prostą zamianę ciągów znaków, która zapisuje większość znaków”. np. generowanie tej tabeli . [edytuj: Spojrzałem ponownie na tabelę i zobaczyłem, że zamiast tego mogę zrobić 71-bajtową wersję].
Wyższe liczby pierwsze mają więcej długich serii 9, a najlepsze, jakie znalazłem, to to, że cyfry sumują się do 73, wzór 89999 -> 1 znak obniża tekst z 99 bajtów do 63 bajtów. Znalezienie sposobu na cofnięcie „a” -> „89999” w pozostałych 10 bajtach doprowadziło mnie do V.
źródło
Japt , 19 bajtów
Sprawdź to
Wyjaśnienie
Wygeneruj tablicę liczb całkowitych (
õ
) od 1 do 100 (L
) podniesionych do kwadratu.Filtruj (
f
) przepuszczając każdą przez funkcję, gdzieZ
jest bieżący element.Sprawdź, czy
Z
jest liczbą pierwszą.Logiczne AND (
&&
).Podziel
Z
na tablicę cyfr (ì
) i zmniejsz przez dodanie (x
).Sprawdź równość z
19
.Wyciąć (
¯
) na 10. element i niejawnie wyprowadzić wynikową tablicę.źródło
Japt , 19 bajtów
Wypróbuj online! z
-Q
flagą, aby sformatować tablicę.Generuje pierwsze 10 liczb pierwszych, których cyfry dodają do
19
:Zauważ, że może to być golf do 18 bajtów (
ì x
→ìx
), ale nie ma liczb pierwszych z cyfrą 18.Wyjaśnienie
Odwzoruj tablicę
[0, ..., 9]
za pomocą następującej funkcji, gdzieX
jest bieżąca wartość.Zwraca pierwszą liczbę całkowitą, która zwraca wartość true z następującej funkcji, gdzie
Z
jest bieżąca wartośćSprawdź, czy ten numer jest liczbą pierwszą i ...
Suma (
x
) cyfr (ì
) wZ
equals (¥
) 19,I
X
jest fałszem («
to „i nie” lub&&!
). To także zmniejszaX
(´
).Wynikowa tablica jest niejawnie wyprowadzana.
źródło
PARI / GP, 40 bajtów
Niewiele golfa na ten temat (wybierz te
x
z sumą 40 cyfr wśród pierwszych 8600 liczb pierwszych). Dane wyjściowe to:źródło
Pyke , 10 bajtów
Wypróbuj tutaj!
źródło
Ruby 2.4.1, 74 bajty
Nigdy nie zamierzałem pokonać jednego z języków zoptymalizowanych dla Codegolfa, ale wciąż fajnie było to robić w Ruby. Frustrujące, że Prime nie jest w Core, ale w standardowej bibliotece. Jestem także sfrustrowany, że nie mogę pokonać Haskella.
źródło
Paradoc (v0.2.7 +), 10 bajtów (CP-1252)
Wypróbuj online!
Nieco wątpliwe, ponieważ wypisuje wszystkie liczby bez separatora między nimi. 11-bajtowy program, który drukuje każdą liczbę w osobnym wierszu:
Jedyną rzeczą, o której warto wspomnieć, jest nieco trudniejsza do zbudowania górna granica:
Iè
18² = 324.źródło
Bubblegum , 37 bajtów
Wypróbuj online!
Dane wyjściowe to
29989,39799,39979,48799,48889,49789,56989,58699,58789,58897
źródło