Wenn eine Ganzzahl größer als 1 ist, geben Sie die Anzahl der Möglichkeiten aus, die als Summe von einem oder mehreren aufeinanderfolgenden Primzahlen ausgedrückt werden können.
Reihenfolge der Summanden spielt keine Rolle. Eine Summe kann aus einer einzelnen Zahl bestehen (daher beträgt die Ausgabe für jede Primzahl mindestens 1).
Das ist Code-Golf . Es gelten Standardregeln.
In diesem OEIS-Wiki finden Sie verwandte Informationen und Sequenzen, einschließlich der Sequenz selbst, OEIS A054845 .
Testfälle
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
ist dasselbe wieÆR
R , 95 Bytes
Probieren Sie es online!
quelle
x
!cumsum
wie man die ersten Elemente einsetzt0
, um die aufeinanderfolgenden Hauptsummen zu erhalten. Ich habe nur versucht, den letzten Testfall zum Laufen zu bringen, und ich hatte das Glück, dass er kürzer war alsouter
! Ich habe mehr als genug Wiederholungen (zumindest bis wir die richtigen Wiederholungsanforderungen haben) und ich bin immer froh, mehr R-Golfern zu mehr Sichtbarkeit zu verhelfen!05AB1E , 6 Bytes
Code
Verwendet die 05AB1E- Codierung. Probieren Sie es online!
quelle
JavaScript (ES6), 92 Byte
Probieren Sie es online!
Kommentiert
quelle
MATL,
1512 BytesProbieren Sie es auf MATL Online aus
Die Initiale
E
(Multiplikation mit 2) stellt sicher, dass bei der Primzahl-Eingabe das Ergebnis der laterYs
(cumsum
) -Eingabe keine Primzahl hat, die sich im nullten Teil der Matrix wiederholt (und so mit der Zählung durcheinanderbringt).Erläuterung:
quelle
Brachylog ,
149 BytesProbieren Sie es online!
Mehrere Testfälle
(-5 ganze Bytes, danke an @Kroppeb!)
Erläuterung:
quelle
⟦ṗˢ
innerhalb derᶜ
Schleife rechnen . Ich habe diese{⟦ṗˢs+;?=}ᶜ
Testsuite: Online ausprobieren!;?=
?
{⟦ṗˢs+?}ᶜ
Retina 0.8.2 , 68 Bytes
Probieren Sie es online! Link enthält schnellere Testfälle. Erläuterung:
Führen Sie das gesamte Skript im mehrzeiligen Modus aus,
^
und$
passen Sie es in jeder Zeile an.Konvertiere zweimal nach unary, zuerst mit
_
s, dann mit1
s._
Löschen Sie alle zusammengesetzten Nummern im Bereich.
_
_
1
quelle
Schale ,
98 Bytes-1 byte dank Mr.Xcoder (benutze benanntes Argument
¹
stattS
)!Probieren Sie es online!
Erläuterung
quelle
#¹ṁ∫ṫ↑İp
sollte 1 Byte gespart werden.MATL , 16 Bytes
Probieren Sie es bei MATL Online!
Erläuterung
quelle
Python 2 ,
106104 BytesProbieren Sie es online!
quelle
Sauber ,
10098 BytesProbieren Sie es online!
Definiert die Funktion,
$ :: Int -> Int
die wie folgt funktioniert :(Erklärung gilt für eine ältere, aber logisch identische Version)
quelle
Perl 6 , 53 Bytes
Probieren Sie es online!
Verwendet den Dreiecksverkleinerungsoperator zweimal. Der letzte Testfall ist für TIO zu langsam.
Erläuterung
quelle
Japt, 17 Bytes
Es muss einen kürzeren Weg geben!
Scheißt auf den letzten Testfall.
Probieren Sie es aus oder führen Sie alle Testfälle aus
Erläuterung
quelle
Java 10,
195194184182 Bytes-1 Byte dank @ceilingcat .
-10 Bytes dank @SaraJ .
Probieren Sie es online aus.
Erläuterung:
Es ist im Grunde ähnlich wie die Gelee oder 05AB1E Antworten, nur 190 Bytes mehr .. XD
Hier ein Vergleich für jeden der Teile, hinzugefügt nur zum Spaß (und zu sehen , warum Java so ausführlich ist, und diese Golf - Sprachen sind so mächtig):
n->{}
[2, n]
: (Jelly: 2 Bytes)ÆR
; (05AB1E: 2 Bytes)ÅP
; (Java 10: 95 Bytes)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 Byte)Œ
; (Java 10: 55 Bytes)for(x=L.size(),i=0;i<x;)for(k=i++;k<x;)
und(int)L.get(k++);
§
; (05AB1E: 1 Byte)O
; (Java 10: 9 Bytes),s
und,s=0
unds+=
ċ
; (05AB1E: 2 Bytes)QO
; (Java 10: 15 Bytes),r=0
undr+=s==n?1:0
return r;
quelle
218918
in 12,5 Sekunden zu machen, wenn man bedenkt, dass es218918-2 = 218,916
Iterationen mit einer inneren Schleife von:n
Iterationen für jede Primzahl macht; 1 Iteration für jede gerade Zahl; und irgendwo zwischen den[2,p/2)
Iterationen für jede ungerade Zahl (fast zwei Milliarden Iterationen), wonach19518
der Liste im Speicher Primzahlen hinzugefügt werden. Und dann wirdsum([0,19518]) = 190,485,921
in der zweiten verschachtelten Schleife eine weitere Schleife ausgeführt. Insgesamt werden 2.223.570.640 Iterationen ausgeführt, um genau zu sein .%i
seit dem Einchecken des Bereichs[2, n]
, Golf spielen können , so dass ich nicht mehr prüfen mussi=1
. :)Physica , 41 Bytes
Probieren Sie es online!
Wie es funktioniert
quelle
Haskell , 89 Bytes
Probieren Sie es online!
Alternative 89 Bytes
Probieren Sie es online!
quelle