Definamos una secuencia. Diremos que es el número más pequeño, , que tiene las siguientes propiedades:
n y son co-primos (no comparten factor)
no aparece antes en la secuencia
A diferencia de la mayoría de las secuencias, el dominio y el rango de nuestra secuencia son los enteros mayores que 1.
Calculemos el primer par de términos.
a ( 2 ) , debe ser al menos 4 , pero 4 y 2 comparten un factor de 2, por lo que debe ser 5 .
a ( 2 ) , debe ser al menos 5 pero 5 es tomado por , por lo que es al menos 6 , pero 6 comparte un factor con 3, por lo que debe ser al menos 7 , 7 cumple los tres requisitos, por lo tanto .
- 2 comparte un factor
- 3 demasiado cerca
- 4 demasiado cerca
- 5 demasiado cerca
- 6 comparte un factor
- 7 Tomado por un (3)
- 8 comparte un factor
- 9 es bueno
- 2 es bueno
Tarea
En este desafío, debe escribir un programa que tome un número mayor que 1 y devuelva .
Esta es una pregunta de código de golf , por lo que las respuestas se puntuarán en bytes, con menos bytes mejor.
Casos de prueba
Aquí están los primeros dos términos de la secuencia (Por supuesto, están indexados 2):
5,7,9,2,11,3,13,4,17,6,19,8,23,22,21,10,25,12,27,16,15,14
Dato curioso adicional
Como lo demostró Robert Israel en Math.se ( enlace ), esta secuencia es su propia inversa, lo que significa que para todo n.
OEIS
Después de hacer esta pregunta, envié esta secuencia al OEIS y, después de unos días, se agregó.
Respuestas:
Haskell , 61 bytes
Pruébalo en línea!
Soy bastante nuevo en Haskell, por lo que cualquier consejo de golf es conveniente.
Gracias a Wheat Wizard por 2 bytes y nimi por 4 bytes
Explicación:
fuente
Alice , 42 bytes
Pruébalo en línea!
Explicación
Esta es una plantilla estándar para programas que toman un número como entrada y emiten un número, modificado para colocar un 1 en la pila debajo del número de entrada.
La parte principal del programa coloca cada número
k
en la ranuraa(k)
de la cinta. El ciclo interno calcula a (k), y el ciclo externo itera sobre k hasta que se calcula a (n).fuente
VB.NET (.NET 4.5), 222 bytes
Tuve que rodar tu propio GCD. Tampoco pude descubrir cómo hacer que no sea una función completa.
GCD es siempre> = 1, por lo que solo debe ignorar 1
Tomó cortocircuito en el golf porque es más corto
Sin golf
fuente
Mathematica, 111 bytes
Pruébalo en línea! 2..23 (modo rango)
Pruébalo en línea! o 150 (valores distintos)
fuente
Japt , 33 bytes (¿no compite?) †
Pruébalo en línea!
† me ha corregido un error en el intérprete Japt mientras se trabaja en esta solución. Esta meta publicación de hace un año considera que esta respuesta no es competitiva, pero esta nueva publicación está presionando para obtener más libertad. De todos modos, pasé demasiado tiempo en esto para desecharlo.
fuente
05AB1E , 26 bytes
°
T*
Explicación:
fuente