Biorąc pod uwagę liczbę całkowitą większą niż 1, wypisz liczbę sposobów, które można wyrazić jako sumę jednego lub więcej kolejnych liczb pierwszych.
Kolejność summands nie ma znaczenia. Suma może składać się z pojedynczej liczby (więc wynik dla dowolnej liczby pierwszej będzie wynosił co najmniej 1.)
To jest golf golfowy . Obowiązują standardowe zasady.
Zobacz wiki OEIS, aby uzyskać informacje i sekwencje, w tym samą sekwencję OEIS A054845 .
Przypadki testowe
2 => 1
3 => 1
4 => 0
5 => 2
6 => 0
7 => 1
8 => 1
10 => 1
36 => 2
41 => 3
42 => 1
43 => 1
44 => 0
311 => 5
1151 => 4
34421 => 6
2æR
jest taki sam jakÆR
R , 95 bajtów
Wypróbuj online!
źródło
x
!cumsum
i ustawić kilka pierwszych elementów,0
aby uzyskać kolejne sumy pierwsze. Pierwszym golfem było tylko to, że próbowałem uruchomić ostatni przypadek testowy, a ja po prostu miałem szczęście, że był on krótszy niżouter
! Mam więcej niż wystarczającą liczbę powtórzeń (przynajmniej dopóki nie uzyskamy odpowiednich wymagań dotyczących powtórzeń) i zawsze cieszę się, że mogę pomóc większej liczbie golfistów R uzyskać lepszą widoczność!05AB1E , 6 bajtów
Kod
Wykorzystuje kodowanie 05AB1E . Wypróbuj online!
źródło
JavaScript (ES6), 92 bajty
Wypróbuj online!
Skomentował
źródło
MATL,
1512 bajtówWypróbuj na MATL Online
Początkowy
E
(pomnóż przez 2) upewnia się, że w przypadku pierwszej liczby wejściowej wynik późniejYs
(cumsum
) nie ma pierwszej liczby wejściowej powtarzającej się w zerowanej części macierzy (w ten sposób powodując bałagan w liczeniu).Wyjaśnienie:
źródło
Brachylog ,
149 bajtówWypróbuj online!
Wiele przypadków testowych
(-5 pełnych bajtów, dzięki @Kroppeb!)
Wyjaśnienie:
źródło
⟦ṗˢ
wᶜ
pętli. Mam ten{⟦ṗˢs+;?=}ᶜ
pakiet testowy: wypróbuj online!;?=
przez?
i dostać{⟦ṗˢs+?}ᶜ
(9 bajtów)Retina 0.8.2 , 68 bajtów
Wypróbuj online! Link zawiera szybsze przypadki testowe. Wyjaśnienie:
Uruchom cały skrypt w trybie multilinii gdzie
^
i$
dopasuj w każdej linii.Konwertuj na unary dwa razy, najpierw używając
_
s, a następnie używając1
s._
Usuń wszystkie liczby złożone w zakresie.
_
_
1
źródło
Łuska ,
98 bajtów-1 bajt dzięki Mr.Xcoder (użyj nazwanego argumentu
¹
zamiastS
)!Wypróbuj online!
Wyjaśnienie
źródło
#¹ṁ∫ṫ↑İp
powinien zaoszczędzić 1 bajt.MATL , 16 bajtów
Wypróbuj w MATL Online!
Wyjaśnienie
źródło
Python 2 ,
106104 bajtówWypróbuj online!
źródło
Czysty ,
10098 bajtówWypróbuj online!
Definiuje funkcję,
$ :: Int -> Int
która działa jak wyjaśniono poniżej:(Wyjaśnienie dotyczy starszej, ale logicznie identycznej wersji)
źródło
Perl 6 , 53 bajtów
Wypróbuj online!
Używa operatora redukcji trójkąta dwa razy. Ostatni przypadek testowy jest zbyt wolny dla TIO.
Wyjaśnienie
źródło
Japt, 17 bajtów
Musi być krótsza droga!
Występuje w ostatnim przypadku testowym.
Wypróbuj lub uruchom wszystkie przypadki testowe
Wyjaśnienie
źródło
Java 10,
195194184182 bajtów-1 bajt dzięki @ceilingcat .
-10 bajtów dzięki @SaraJ .
Wypróbuj online.
Wyjaśnienie:
Jest w zasadzie podobny do odpowiedzi Jelly lub 05AB1E , tylko 190 bajtów więcej .. XD
Tutaj porównanie dla każdej części, dodane tylko dla zabawy (i żeby zobaczyć, dlaczego Java jest tak gadatliwa, a te języki gry w golfa są tak potężne):
n->{}
[2, n]
: (Galaretka: 2 bajty)ÆR
; (05AB1E: 2 bajty)ÅP
; (Java 10: 95 bajtów)var L=new java.util.Stack();int i=1,k,x,s,r=0;for(;i++<n;){for(k=1;i%++k>0;);if(k==i)L.add(i);}
Ẇ
; (05AB1E: 1 bajt)Œ
; (Java 10: 55 bajtów)for(x=L.size(),i=0;i<x;)for(k=i++;k<x;)
i(int)L.get(k++);
§
; (05AB1E: 1 bajt)O
; (Java 10: 9 bajtów),s
i,s=0
is+=
ċ
; (05AB1E: 2 bajty)QO
; (Java 10: 15 bajtów),r=0
ir+=s==n?1:0
return r;
źródło
218918
w 12,5 sekundy tbh, biorąc pod uwagę, że wykona218918-2 = 218,916
iteracje z wewnętrzną pętlą:n
iteracji dla każdej liczby pierwszej; 1 iteracja na każdą liczbę parzystą; i gdzieś pomiędzy[2,p/2)
iteracjami dla każdej liczby nieparzystej (blisko dwa miliardy iteracji), po czym dodaje19518
liczby pierwsze do listy w pamięci. A potem zapętli dodatkowysum([0,19518]) = 190,485,921
czas w drugiej zagnieżdżonej pętli. Dokładnie w sumie 2 223 570 640 iteracji .%i
ponieważ sprawdzamy w zakresie[2, n]
, więc nie będę musiał sprawdzaći=1
. :)Physica , 41 bajtów
Wypróbuj online!
Jak to działa
źródło
Haskell , 89 bajtów
Wypróbuj online!
Alternatywnie, 89 bajtów
Wypróbuj online!
źródło