Tarea
Hay un conjunto de números x
, que x^2
divide 7^x-1
.
Tu tarea es encontrar estos números. Dada una entrada de n, el código imprimirá el enésimo número que sigue esta regla.
Ejemplos 1-índice
In Out
3 3
9 24
31 1140
La secuencia relevante se puede encontrar aquí .
Reglas
La respuesta más corta será el ganador *
Aplican reglas estándar de golf
Las lagunas no están permitidas.
Su respuesta puede ser 0 o 1 indexada, indique en su respuesta
n
? Puedo dar el resultado correcto conn=9
, peron=10
ya me está causando problemas.n=10
me da 32; es porque comienza a usar el doble en lugar de los enteros y el mod es incorrecto después de eso. :(Respuestas:
Haskell, 34 bytes
Esto usa indexación basada en 0. Ejemplo de uso:
([x|x<-[1..],mod(7^x-1)(x^2)<1]!!) 30
->1140
.Es una implementación directa de la definición. Construye una lista de todos los números
x
y elige eln
th.fuente
Pyth , 10 bytes
Un programa que toma la entrada de un número entero e imprime un valor indexado.
Pruébalo en línea!
Cómo funciona
fuente
JavaScript (ES7), 40 bytes
Esto pierde precisión con bastante rapidez debido a que JS pierde precisión por
7**19
. Aquí hay una versión ES6 de precisión casi arbitraria:Esto termina en aproximadamente un segundo para el caso de prueba 31.
Algunos enfoques más largos:
fuente
05AB1E , 11 bytes
Pruébalo en línea!
Por alguna razón no puedo
½
trabajarµ7Nm<NnÖ½N
o estaría atado con Pyth..
fuente
Ö
en mi lista de arreglos durante meses, pero nunca llego a lidiar con eso. De todos modos, no necesita la salida automática,N
ya que la pila está vacía.µ
N
Python 2 ,
4846 bytes¡Gracias a @Dennis por -2 bytes!
Una función recursiva de un índice que toma datos a través de argumentos y devuelve el resultado.
Pruébalo en línea! (Límite de recursión aumentado para permitir que se ejecute el caso de prueba final)
Cómo funciona
n
es el índice deseado, yi
es la variable de conteo.La expresión
~-7**i%i**2<1
devuelveTrue
(equivalente a1
) si sei^2
divide7^i - 1
, yFalse
(equivalente a0
) de lo contrario. Cada vez que se llama a la función, se resta el resultado de la expresiónn
, disminuyendon
cada vez que se encuentra un hit;i
También se incrementa.El comportamiento de cortocircuito de
and
significa que cuandon
es0
,0
se devuelve; Este es el caso base. Una vez que se alcanza esto, la recursión se detiene y lai
llamada a la función original devuelve el valor actual de . En lugar de usar explícitamentei
, esto se hace usando el hecho de que para cada llamada de función, se ha realizado un incremento usando el-~
frente de la llamada; incrementando los0
i
tiempos dai
, según sea necesario.fuente
(~-7**i%i**2<1)
Guarda un par de bytes.Python 2 ,
575351 bytes-4 bytes gracias a ETHproductions
-2 bytes gracias a TuukkaX
Pruébalo en línea!
la secuencia está indexada 1
fuente
(7**i)
? Los eliminé y funcionó para los que probé.**
tiene una prioridad más alta que~
y-
Python 2, 57 bytes
Esto toma realmente muy largo tiempo para valores grandes. También usa mucha memoria, porque construye la lista completa mucho más de lo necesario. El resultado está indexado a cero.
Pruébalo en línea
fuente
2**n+1
límite superior?2**50
. Podría usar9**n+9
, pero lleva mucho más tiempo. Empecé a correr hacef(20)
un tiempo (con2**n+1
); Todavía no se ha completado.Mathematica, 43 bytes
Actualmente tengo tres soluciones diferentes en este recuento de bytes:
fuente
Divisible
.Cases[Range[#^3],x_/;x^2∣(7^x-1)][[#]]&
basado en el argumento heurístico de que n ^ 3 es un límite superior. He descubierto una prueba realmente maravillosa de esto, que este margen es demasiado estrecho para contener :)PARI / GP , 42 bytes
Muy claro. 1 indexado, aunque esto podría cambiarse fácilmente.
o
fuente
Python 3 , 45 bytes
Devuelve True para la entrada 1 , que está permitida por defecto .
Pruébalo en línea!
fuente
R, 35 bytes
Esto solo funciona para
n<=8
.Sin embargo, aquí hay una versión más larga que funciona
n<=25
para 50 bytes :fuente
8
porque se convierte en un int largo?gmp
que permite enteros arbitrariamente grandes. Sin embargo, rápidamente me quedo sin RAM para calcular cualquier cosa anteriorn=25
.PHP,
4749 bytesSolo funciona para n <9 (
7**9
es más grande quePHP_INT_MAX
con 64 bits)62 bytes usando enteros de longitud arbitraria: (no probado; PHP en mi máquina no tiene bcmath)
Corre con
php -nr '<code>' <n>
.pseudocódigo
fuente
Pyke, 10 bytes
Pruébalo aquí!
fuente
Clojure , 83 bytes
Pruébalo en línea!
Esto crea una lista infinita de Java BigIntegers que comienza en 1 y los filtra por definición. Utiliza la indexación de base cero para seleccionar el n º valor de la lista filtrada.
fuente
Perl 5, 35 Bytes
Bueno, esto faltaba, así que aquí está:
map{$_ if!((7**$_-1)%($_**2))}1..<>
fuente
Powershell, demasiados bytes
Solo para ver si era posible y lo es.
fuente
Perl 6 ,
3534 bytes0 indexado.
Afeitado un byte gracias a Brad Gilbert.
fuente
{grep(…)}
QBIC , 39 bytes
No pude ejecutarlo en QBasic 4.5, pero parece funcionar bien en QB64. Por alguna razón inexplicable, QBasic se niega a dividir limpiamente 13,841,287,200 por 144, pero en cambio da un resto de -128. Luego devuelve 16 como el séptimo término de esta secuencia en lugar de 12 ...
fuente
Maravilla , 28 bytes
Indexado a cero. Uso:
Filtra de la lista de números naturales con un predicado que determina si
x^2
es divisible por7^x-1
, luego obtiene el enésimo elemento en esa lista.fuente
Tcl , 73 bytes
Pruébalo en línea!
fuente