Defina una secuencia indexada de 1 de la siguiente manera:
A083569(1) = 1
A083569(n)
donden
es un número entero mayor que1
, es el número entero más pequeño m que no aparece antes, de modo quem+n
es un número primo.
Su tarea es acoger n
y regresar 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
Más casos de prueba se pueden encontrar aquí . La secuencia original en OEIS se puede encontrar aquí .
Este es el código de golf . La respuesta más corta en bytes gana. Se aplican lagunas estándar .
Respuestas:
Haskell ,
878683807469 bytes¡Gracias a xnor por sugerir algunos cambios que ahorraron 3 bytes!
Pruébalo en línea!
Soy nuevo en Haskell, y en Haskell golf, ¡se agradecen sus comentarios!
Explicación
Definimos una función
f n
. Definimosf n
ser el primer elemento!!0
de la lista:Desglosado que es:
fuente
[2,3..]
solo puede haber[2..]
, contando por 1 es el predeterminado. Hay un incorporadonotElem
.notElem
pero el primer consejo fue útil y me aseguraré de mantener el segundo en mi bolsillo trasero.f 1
equivoca, debería ser 1.Jalea ,
1615 bytesEsto supone A083569 (n) ≤ n² (la secuencia parece estar creciendo linealmente).
Pruébalo en línea!
Cómo funciona
fuente
A083569(n)
es a lo sumo eln
primer primo mayor quen
por su definición, que es a lo sumo el2n
primer primo, que (paran≥3
) es menor que4n*log(n)
por los resultados de Rosser-Schoenfeld.Pyth -
181715 bytes¡Gracias a @isaacg por salvarme dos bytes!
De vuelta en este sitio, después de haber estado ocupado por un tiempo, esperamos que este golf aún más.
Pruébelo en línea aquí .
fuente
-TY
es un byte más corto!/YT
y verdadero en los mismos casos.+hdT
a+Th
.C # (.NET Core) , 169 bytes
Pruébalo en línea!
Con mucho, la forma más eficiente para el cálculo de los resultados, así que por favor absténgase de cálculo
f(n)
paran>=30
con este código. El primer paso es calcular de forma recursiva los valores def(1)
af(n-1)
y luego proceder a calcularf(n)
mediante la búsqueda de la primerai
de tal manera quen+i
es primo yi
no está en la lista de valores anterior.fuente
Conjunto x86-64,
5755 bytesSoy nuevo en el golf, por lo que se agradecen los comentarios / comentarios.
Nota: esto está optimizado para la longitud del código de máquina, no para la longitud de la fuente.
Define una función, utilizando la convención estándar (es decir, valor de retorno en eax, primer argumento en edi, todos los registros guardados por el llamador excepto ebx) que toma un entero de 32 bits sin signo y devuelve el m más pequeño, etc.
Fuente:
Pruébalo en línea!
fuente
Clojure,
158155bytesEsto aún podría tener algo de grasa, no estoy muy contento,
(+ 1 i j)
pero esta fue la forma más fácil de manejar el caso basen = 1
y el resto.((set r)j)
devuelvenil
sij
no está en el conjunto, y(seq ())
en una lista vacía también devuelve nil. Calculan = 1000
en 48 segundos.Actualización: eliminado
nil
de la=
verificación ya que el código funciona correctamente también sin él.fuente
Ruby , 62 + 8 = 70 bytes
Usa la
-rprime
bandera.Pruébalo en línea!
fuente
Python,
194170110 bytes84 bytes guardados por Leaky Nun
2 bytes guardados por Mathmandan
Define una función s (n) que toma un número como entrada y devuelve A083569 (n).
Pruébalo en línea
fuente
p=lambda n:any(n%i<1for i in range(2,n))
para la comprobación de primalidad.while(i in a)|any(...