Dies ist der PPCG Prime
624 Ziffern lang
777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777111111111111111111111111111111111111111111111111111111111111111111111111111111188888888118888888811188888811188888811188111118818811111881881111881881111881188111118818811111881881111111881111111188888888118888888811881111111881118888188111111118811111111881111111881111881188111111118811111111881111881881111881188111111118811111111188888811188888811111111111111111111111111111111111111111111111111111111111111111111111111111111333333333333333333333333333333333333333
Wenn wir alle 39 Stellen teilen, erhalten wir
777777777777777777777777777777777777777
777777777777777777777777777777777777777
777777777777777777777777777777777777777
777777777777777777777777777777777777777
111111111111111111111111111111111111111
111111111111111111111111111111111111111
188888888118888888811188888811188888811
188111118818811111881881111881881111881
188111118818811111881881111111881111111
188888888118888888811881111111881118888
188111111118811111111881111111881111881
188111111118811111111881111881881111881
188111111118811111111188888811188888811
111111111111111111111111111111111111111
111111111111111111111111111111111111111
333333333333333333333333333333333333333
Ihre Aufgabe ist es, das PPCG-Prime auszugeben
Dies ist Codegolf. Der kürzeste Code in Bytes gewinnt.
Wenn Sie das PPCG-Prime in die folgende Mathematica-Funktion eingeben, erhalten Sie dieses Ergebnis
ArrayPlot@Partition[IntegerDigits@#,39]&
n
eine Primzahl ist1/log(n)
, ist proportional zu , was ohnehin nicht sehr gering ist. Überprüfen Sie einfach viele Zahlen, bis es Primzahl ist.log(n)
ist1436.6
in diesem Fall ungefähr .x/logx
von GaussAntworten:
Jelly ,
5554524746 BytesEs gibt mehr verschlungene Ansätze in der Revisionshistorie, aber diese einfache übertrifft sie alle.
Probieren Sie es online!
Wie es funktioniert
Dies ist ein numerisches Literal, das in der bijektiven Basis 250 codiert ist, wobei die Ziffern aus Jellys Codepage entnommen sind. Das (linke) Argument der Kette und der Rückgabewert werden auf die codierte Ganzzahl gesetzt,
n: = 0x21871c77d7d7af6fafafeff0c37f72ff7fbfbdbfdfef5edfeff8e3 .
Ein ähnliches Wort wie das obige, aber das zweite
“
trennt zwei codierte ganze Zahlen. Der Rückgabewert wird durch das codierte Array [777711, 113] ersetzt .D
konvertiert den Rückgabewert in eine Dezimalzahl ( [[7, 7, 7, 7, 1, 1], [1, 1, 3]] ) undx39
wiederholt dann jede einzelne Ganzzahl / Ziffer im Ergebnis 39 Mal. Dies ergibt ein Array-Paar, das die Ziffern vor und nach dem 7-stelligen Hochtext enthält. Lassen Sie uns dieses Array nennen A .Zuerst
B
wandelt die (linke) Argument n binär. Dies ergibt die Ziffern, die den 7-stelligen Hochtext bilden, wobei jede 88 durch 0 ersetzt wurde .Dann
j
schließt sich die Matrix A , die binäre Array als Separator verwendet wird .Dies führt ein logisches ODER durch 88 aus und ersetzt jede 0 durch 88 .
Wir haben jetzt die richtigen Ziffern, aber in einem Array von 7 , 1 , 88 und 3 .
V
Verwandelt dieses Array implizit in einen String und wertet ihn dann aus, wobei eine einzelne Ganzzahl erhalten wird.quelle
Bubblegum , 51 Bytes
Probieren Sie es online!
quelle
SOGL V0.12 ,
5251 Byteskrawatten bubblegum!
Beachten Sie, dass diese Antwort eine Registerkarte enthält
Probieren Sie es hier aus!
Versucht, Bytes zu speichern, indem dieselbe Zeichenfolge für beide
P
s wiederverwendet wird .Erläuterung:
Die Nummern dort werden ab dem Original gespeichert, beginnend links unten, aufwärts, dann 1 rechts und abwärts, dann aufwärts, ect.
Eine 52-Byte-Version mit einfacher Komprimierung:
Probieren Sie es hier aus!
quelle
...‘
man an diese Zahlen?...‘
?CG
in dieses Werkzeug codiert, wird in diesem Werkzeug nichts...‘
angezeigt.Mathematica, 107 Bytes
Probieren Sie es online!
quelle
&
am Ende beheben könnten ).CJam, ASCII, 61
Probieren Sie es online aus
Fügen Sie
]s39/N*
für schöne Verpackung.Erläuterung:
quelle
C,
519427414396377 BytesVielen Dank an Tas, Felix Palmen und Lynn.
Für Ihr Interesse ist hier eine längere, besser lesbare Version:
quelle
Java (OpenJDK 8) , 165 Byte
Probieren Sie es online!
Credits
quelle
n->{for(int i=0;++i<566;)System.out.print(i<157?7:i>526?3:i<236|i>446||new java.math.BigInteger("vnku5g6l0zenpa1kydel5rxw162k4fk4xapa154o",36).testBit(446-i)?1:88);}
88
, danke!Retina , 129 Bytes
Probieren Sie es online!
quelle
Batch,
364335333 Bytesquelle
echo|
zucd|
(1,1,156) do
kann verkürzt(1,1,156)do
Javascript (ES6),
187181 Bytes-6 Bytes dank @JustinMariner
Super einfacher Ansatz; es könnte wahrscheinlich noch etwas mehr golfen werden.
Erläuterung
Beispielcode-Snippet (mit etwas Hilfscode zum Hinzufügen von Zeilenumbrüchen in der Ausgabe)
Code-Snippet anzeigen
quelle
r
wier=s=>s[0].repeat(39)
und dann ersetzena
,b
undk
mitr`7`
usw. Probieren Sie es online! .C (gcc) ,
269267 BytesFunktion verwendet einfache RLE.
Probieren Sie es online!
quelle
L"'OP\x9c"
stattdessen vorx
C (gcc) , 224 Bytes
Probieren Sie es online!
Enthält einige nicht druckbare Elemente, das String-Literal lautet
"ww\x11dfFdfFDfFDfFDFDDFFDDFFDddDDFdDDddDDddDDDdDDDDffDffDFDDDFDfdDDDDFDDDdDDDdDDFdDDDDFDDDdDDFFDdDFDDDdDDDDdfDdfD\x11\x03"
.quelle
Jelly , 86 Bytes
Probieren Sie es online!
-12 Bytes dank user202729
quelle
“
canseparates a list of strings inside a string literal
)Python 2 ,
309158155136135 BytesProbieren Sie es online!
Python 2 , 137 Bytes
Probieren Sie es online!
quelle
Jelly , 85 Bytes
Probieren Sie es online!
Basierend auf Dennis 'Herangehensweise an die Trinity Hall-Herausforderung, abzüglich der Symmetrie sowie der führenden
7
und nachfolgenden3
.quelle
PowerShell , 164 Byte
Probieren Sie es online!
String-Multiplikation, Verkettung und Ersetzungen. PowerShell verfügt nicht über Base 36 oder ähnliches, daher sind die Komprimierungsoptionen für große Zahlen begrenzt. Es könnte einen besseren Weg geben, den Mittelteil zu "komprimieren" - ich überprüfe das immer noch.
quelle
Wolfram Language (Mathematica) , 89 (17 + 71 + 1) Bytes
Zuerst exportieren Sie die Nummer in eine GZIP-Datei. Diese Datei mit dem Namen "o" ohne Erweiterung hat genau 71 Byte, was für die Gesamtsumme zählt. Standardmäßig geht es zu Ihrem
$TemporaryDirectory
. Weglassen von Ziffern zur besseren Lesbarkeit.Dann
wird die Zahl rekonstruieren. Der Dateiname ist ein Byte, daher kommt die +1 von dort.
Probieren Sie es online!
quelle
Ruby, 109 Bytes
Das Skript ruft
Zlib.inflate
auf, um die Nummer zu dekomprimieren. Es benötigt mindestens Ruby 1.9.3. Es enthält nicht druckbare Bytes, daher kann ich es hier nicht einfügen.Ich füge die Ausgabe von
vis prime-inflate.rb
:Wenn Sie unvis (1) haben, führen Sie den Befehl aus
unvis prime-inflate.vis > prime-inflate.rb
, um das 109-Byte-Skript wiederherzustellen. Oder Sie können die Base64 unten mit dekodierenruby -e 'print *STDIN.read.unpack(?m)' < prime-inflate.b64 > prime-inflate.rb
.Ich benenne,
Zlib.inflate
also muss ich nicht meinen eigenen Dekompressionsalgorithmus entwerfen und Golf spielen. Ich benutzeDATA
mit,__END__
weil die komprimierte Zeichenfolge nicht UTF-8 gültig ist. Ruby-Code muss gültiges ASCII (in Ruby 1.9.x) oder UTF-8 (in Ruby 2.0) sein oder über einen magischen Kommentar verfügen#coding:binary
, um die Codierung zu ändern. Ruby überprüft die Codierung jedoch nicht nach__END__
.quelle
Python 2 , 112 Bytes
Probieren Sie es online!
quelle
6502 Maschinencode (C64),
142122 BytesOnline-Demo
Verwendungszweck:
sys49152
Erläuterung
Dabei werden auch die Längen der
1
und8
Sequenzen im Mittelteil verwendet; Da sie alle kürzer als 16 sind, werden zwei von ihnen pro Byte codiert.Kommentierte Zerlegungsliste:
quelle
C (GCC) ,
188187185 Bytes-1 Danke an JonathanFrech.
-2 dank ceilingcat.
Probieren Sie es online!
quelle
Python 2 ,
244128120 Bytes-8 Bytes dank @JonathanFrech
Probieren Sie es online!
quelle
Befunge-93 , 500 Bytes
Probieren Sie es online!
quelle