Remarque: ceci est fortement inspiré par cette question .
Tâche:
Votre tâche consiste à générer le n
e premier, lorsque chaque caractère de votre programme est répété plusieurs n
fois en place.
Disons que votre programme est:
Derp
Chaque caractère est répété une fois, il devrait donc sortir 2
.
Lorsque chaque personnage est dupliqué sur place, comme ceci:
DDeerrpp
Cela devrait générer le 2ème prime, qui est 3
.
Spécifications:
- Votre programme ne doit accepter aucune entrée et produire le nombre premier respectif.
- Votre programme doit fonctionner pour tous les nombres premiers, avec suffisamment de temps et de mémoire.
- Les sauts de ligne en tête et en queue vont bien.
- La sortie doit être dans la base par défaut de la langue - s'il n'y a pas de valeur par défaut, n'importe quelle base est correcte.
C'est le code-golf , donc le code le plus court en octets l'emporte.
code-golf
math
primes
source-layout
clismique
la source
la source
Réponses:
Gelée , 13 octets
Essayez-le en ligne! ou exécutez les dix premiers programmes .
Contexte
Jelly a plusieurs types de littéraux de chaîne; tous commencent par un
“
. Si le littéral en contient plusieurs“
, un tableau de chaînes est renvoyé et“
sépare les chaînes les unes des autres.Par exemple, les
“abc“def”
rendements['abc', 'def']
.Selon le dernier caractère du littéral (n'importe
”«»‘’
lequel, où«
n'est actuellement pas implémenté), on peut choisir entre les différents types de littéraux. Pour‘
, nous obtenons les points de code dans la page de codes de Jelly au lieu des caractères Unicode correspondants.Par exemple, les
“abc“def‘
rendements[[97, 98, 99], [100, 101, 102]]
.Les littéraux des trois premiers programmes correspondent aux tableaux de points de code suivants.
Comment ça marche ( n = 3 )
la source
GS2 ( commit 67fea47 ),
63 octetsComment ça fonctionne
Comme la plupart des commandes, les GS2
d
sont surchargées. Initialement, il y a une liste vide (l'entrée ou son absence) sur la pile, doncd
calcule sa somme. Après la première itération, il y a un 0 sur la pile etd
calcule sa parité (également 0 ). Ainsi, quel que soit le nombre de répétitionsd
, le résultat sera toujours un 0 unique .La partie suivante est simple. La commande fait
n
apparaître le haut de la pile et pousse le nombre premier suivant. Ainsi, répétern
k fois calcule le k premier.Enfin, la commande applique simplement str en haut de la pile, ce qui convertit un nombre en sa représentation sous forme de chaîne et n'affecte pas les chaînes. Ainsi, peu importe combien de fois nous répétons
R
, le résultat sera la représentation sous forme de chaîne du k premier.la source