C'est le PPCG Prime
624 chiffres de long
777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777111111111111111111111111111111111111111111111111111111111111111111111111111111188888888118888888811188888811188888811188111118818811111881881111881881111881188111118818811111881881111111881111111188888888118888888811881111111881118888188111111118811111111881111111881111881188111111118811111111881111881881111881188111111118811111111188888811188888811111111111111111111111111111111111111111111111111111111111111111111111111111111333333333333333333333333333333333333333
Si nous divisons tous les 39 chiffres, nous obtenons
777777777777777777777777777777777777777
777777777777777777777777777777777777777
777777777777777777777777777777777777777
777777777777777777777777777777777777777
111111111111111111111111111111111111111
111111111111111111111111111111111111111
188888888118888888811188888811188888811
188111118818811111881881111881881111881
188111118818811111881881111111881111111
188888888118888888811881111111881118888
188111111118811111111881111111881111881
188111111118811111111881111881881111881
188111111118811111111188888811188888811
111111111111111111111111111111111111111
111111111111111111111111111111111111111
333333333333333333333333333333333333333
Votre tâche consiste à sortir le PPCG-Prime
C'est codegolf . Le code le plus court en octets gagne.
Si vous entrez le code PPCG-Prime dans la fonction Mathematica ci-dessous, vous obtenez ce résultat.
ArrayPlot@Partition[IntegerDigits@#,39]&
n
soit premier est proportionnelle à1/log(n)
, ce qui n'est pas très petit, de toute façon. Il suffit de vérifier beaucoup de chiffres jusqu'à ce qu'il soit en prime.log(n)
est1436.6
dans ce cas.x/logx
de GaussRéponses:
Jelly ,
5554524746 octetsIl existe des approches plus compliquées dans l’historique des révisions, mais cette approche simple les bat toutes.
Essayez-le en ligne!
Comment ça fonctionne
Il s'agit d'un littéral numérique, codé dans la base bijective 250, où les chiffres sont extraits de la page de code de Jelly. L'argument (à gauche) de la chaîne et la valeur de retour sont définis sur l'entier codé
n: = 0x21871c77d7d7af6fafafeff0c37f72ff7f7fbfbdbfdfef5edfeff8e3 .
Un littéral similaire à celui ci-dessus, mais le second
“
sépare deux entiers codés. La valeur de retour est remplacée par le tableau codé, [777711, 113] .D
convertit la valeur renvoyée en valeur décimale ( [[7, 7, 7, 7, 1, 1], [1, 1, 3]] ), puisx39
répète chaque nombre entier / chiffre dans le résultat 39 fois. Cela donne une paire de tableaux contenant les chiffres avant et après le texte de 7 caractères, respectivement. Appelons ce tableau A .D'abord,
B
convertit l'argument (gauche) n en binaire. Cela donne les chiffres qui forment le texte de 7 caractères, où chaque 88 a été remplacé par 0 .Ensuite,
j
rejoint le tableau A , en utilisant le tableau binaire comme séparateur.Ceci effectue un OU logique avec 88 , en remplaçant chaque 0 par 88 .
Nous avons les bons chiffres maintenant, mais dans un tableau de 7 , 1 , 88 et 3 .
V
transforme implicitement ce tableau en chaîne, puis l’évalue, ce qui donne un seul entier.la source
Bubblegum , 51 octets
Essayez-le en ligne!
la source
SOGL V0.12 ,
5251 octetscravates bubblegum!
notez que cette réponse contient un onglet
Essayez-le ici!
Essaie de sauvegarder des octets en réutilisant la même chaîne pour les deux caractères
P
.Explication:
Les numéros y sont sauvegardés à partir de l’original en commençant par le bas à gauche, en montant, puis à droite et en bas, puis en haut, etc.
Une version de compression simple de 52 octets:
Essayez-le ici!
la source
...‘
obtenir ces chiffres?...‘
?CG
outil dans cet outil ne donne rien...‘
dans cet outil.Mathematica, 107 octets
Essayez-le en ligne!
la source
&
à la fin).CJam, ASCII, 61
Essayez-le en ligne
Ajoutez
]s39/N*
pour un bel emballage.Explication:
la source
C,
519427414396377 octetsMerci à Tas, Felix Palmen et Lynn.
Pour votre intérêt, voici une version plus longue, plus lisible:
la source
Java (OpenJDK 8) , 165 octets
Essayez-le en ligne!
Crédits
la source
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
, merci!Retina , 129 octets
Essayez-le en ligne!
la source
Lot,
364335333 octetsla source
echo|
àcd|
(1,1,156) do
peut être raccourci à(1,1,156)do
Javascript (ES6),
187181 octets-6 octets grâce à @JustinMariner
Approche super simple; il pourrait probablement être joué au golf un peu plus.
Explication
Exemple d'extrait de code (avec un code d'assistance permettant d'ajouter des sauts de ligne dans la sortie)
Afficher l'extrait de code
la source
r
commer=s=>s[0].repeat(39)
puis remplacera
,b
etk
avecr`7`
etc Essayez - le en ligne! .C (gcc) ,
269267 octetsfonction, utilise un simple RLE.
Essayez-le en ligne!
la source
L"'OP\x9c"
lieu dex
C (gcc) , 224 octets
Essayez-le en ligne!
Contient des caractères non imprimables, le littéral chaîne est
"ww\x11dfFdfFDfFDfFDFDDFFDDFFDddDDFdDDddDDddDDDdDDDDffDffDFDDDFDfdDDDDFDDDdDDDdDDFdDDDDFDDDdDDFFDdDFDDDdDDDDdfDdfD\x11\x03"
.la source
Gelée , 86 octets
Essayez-le en ligne!
-12 octets grâce à user202729
la source
“
canseparates a list of strings inside a string literal
)Python 2 ,
309158155136135 octetsEssayez-le en ligne!
Python 2 , 137 octets
Essayez-le en ligne!
la source
Gelée , 85 octets
Essayez-le en ligne!
Basé sur l'approche de Dennis au défi de Trinity Hall, moins la symétrie, plus le
7
s en tête et le3
s en traînant .la source
PowerShell , 164 octets
Essayez-le en ligne!
Multiplication de chaîne, concaténation et remplacements. PowerShell n'a pas de base 36 ou similaire, ce qui limite les options de compression en grand nombre. Il y aurait peut-être un meilleur moyen de "compresser" la partie centrale - je vérifie toujours cela.
la source
Wolfram Language (Mathematica) , 89 (17 + 71 + 1) octets
D'abord, vous exportez le numéro dans un fichier GZIP. Ce fichier, nommé "o" sans extension, aura exactement 71 octets, ce qui compte pour le total. Par défaut, il ira à votre
$TemporaryDirectory
. Omettre les chiffres pour plus de lisibilité.ensuite
va reconstruire le nombre. Le nom du fichier est un octet, c’est d’où le +1.
Essayez-le en ligne!
la source
Ruby, 109 octets
Le script appelle
Zlib.inflate
pour décompresser le numéro. Il faut au moins Ruby 1.9.3. Il contient des octets non imprimables, je ne peux donc pas le coller ici.Je colle la sortie de
vis prime-inflate.rb
:Si vous avez unvis (1), exécutez-le
unvis prime-inflate.vis > prime-inflate.rb
pour restaurer le script de 109 octets. Ou vous pouvez décoder la Base64, ci-dessous, avecruby -e 'print *STDIN.read.unpack(?m)' < prime-inflate.b64 > prime-inflate.rb
.J'appelle
Zlib.inflate
donc je n'ai pas besoin de concevoir et de jouer au golf mon propre algorithme de décompression. J'utiliseDATA
avec__END__
parce que la chaîne compressée n'est pas valide UTF-8. Le code Ruby doit être un code ASCII valide (dans Ruby 1.9.x) ou UTF-8 (à partir de Ruby 2.0) ou avoir un commentaire magique#coding:binary
pour changer le codage, mais Ruby ne vérifie pas le codage après__END__
.la source
Python 2 , 112 octets
Essayez-le en ligne!
la source
6502 code machine (C64),
142122 octetsDémo en ligne
Usage:
sys49152
Explication
Ceci utilise également les longueurs des séquences
1
et8
dans la partie centrale; comme ils sont tous inférieurs à 16, deux d'entre eux sont codés par octet.Liste de désassemblage commentée:
la source
C (gcc) ,
188187185 octets-1 merci à JonathanFrech.
-2 grâce à ceilingcat.
Essayez-le en ligne!
la source
Python 2 ,
244128120 octets-8 octets grâce à @JonathanFrech
Essayez-le en ligne!
la source
Befunge-93 , 500 octets
Essayez-le en ligne!
la source