Définissez une séquence indexée comme suit:
A083569(1) = 1
A083569(n)
oùn
est un entier supérieur à1
, est le plus petit entier m n'apparaissant pas plus tôt tel qu'unm+n
nombre premier.
Votre tâche consiste à accueillir n
et à revenir A083569(n)
.
n A083569(n)
1 1
2 3
3 2
4 7
5 6
6 5
7 4
8 9
9 8
10 13
11 12
12 11
13 10
14 15
15 14
16 21
17 20
18 19
19 18
20 17
Plus de tests peuvent être trouvés ici . La séquence originale sur OEIS peut être trouvée ici .
C'est du code-golf . La réponse la plus courte en octets l'emporte. Des échappatoires standard s'appliquent.
Réponses:
Haskell ,
878683807469 octetsMerci à xnor d'avoir suggéré des changements qui ont sauvé 3 octets!
Essayez-le en ligne!
Je suis nouveau à Haskell et au golf à Haskell, les commentaires sont appréciés!
Explication
Nous définissons une fonction
f n
. Nous définissonsf n
comme le premier élément!!0
de la liste:En panne, c'est:
la source
[2,3..]
peut juste être[2..]
, compter par 1 est par défaut. Il y a un intégrénotElem
.notElem
mais le premier conseil a été utile et je m'assurerai de garder le second dans ma poche arrière.f 1
trompe, devrait être 1.Gelée ,
1615 octetsCela suppose A083569 (n) ≤ n² (la séquence semble croître de façon linéaire).
Essayez-le en ligne!
Comment ça marche
la source
A083569(n)
est au plus len
th premier plus grand quen
par sa définition, qui est tout au plus le2n
th premier, qui (pourn≥3
) est inférieur4n*log(n)
aux résultats de Rosser – Schoenfeld.Pyth -
181715 octetsMerci à @isaacg de m'avoir sauvé deux octets!
De retour sur ce site, après avoir été occupé pendant un certain temps, nous espérons que celui-ci continuera de jouer au golf.
Essayez-le en ligne ici .
la source
-TY
est un octet plus court que!/YT
, et véridique dans les mêmes cas.+hdT
pour+Th
.C # (.NET Core) , 169 octets
Essayez-le en ligne!
De loin la façon la plus inefficace pour calculer les résultats, donc renoncez à calculer
f(n)
pourn>=30
ce code. La première étape consiste à calculer récursivement les valeurs def(1)
àf(n-1)
, puis à procéder au calculf(n)
en recherchant le premieri
tel quin+i
est premier eti
ne figure pas dans la liste de valeurs précédente.la source
Assemblage x86-64,
5755 octetsJe suis nouveau au golf, donc les commentaires / retours sont appréciés.
Remarque: ceci est optimisé pour la longueur du code machine, pas pour la longueur source.
Définit une fonction, en utilisant la convention standard (c'est-à-dire la valeur de retour dans eax, le premier argument dans edi, tous les registres sauvegardés par l'appelant sauf ebx) qui prend un entier 32 bits non signé et retourne le plus petit m etc.
La source:
Essayez-le en ligne!
la source
Clojure,
158155octetsCela pourrait encore avoir un peu de graisse, je ne suis pas très satisfait,
(+ 1 i j)
mais c'était la façon la plus simple de gérer le cas de basen = 1
et le reste.((set r)j)
renvoienil
ifj
n'est pas dans l'ensemble, et(seq ())
sur une liste vide retourne également nil. Calculen = 1000
en 48 secondes.Mise à jour: supprimée
nil
de la=
vérification car le code fonctionne correctement également sans elle.la source
Ruby , 62 + 8 = 70 octets
Utilise le
-rprime
drapeau.Essayez-le en ligne!
la source
Python,
194170110 octets84 octets enregistrés par Leaky Nun
2 octets enregistrés par mathmandan
Définit une fonction s (n) qui prend un nombre en entrée et renvoie A083569 (n).
Essayez-le en ligne
la source
p=lambda n:any(n%i<1for i in range(2,n))
pour le contrôle de primalité.while(i in a)|any(...