JE Maxfield demostró el siguiente teorema (ver DOI: 10.2307 / 2688966 ):
Si es un entero positivo que tiene dígitos, existe un entero positivo tal que los primeros dígitos de constituyen el entero .
Reto
Su desafío se le da un poco de encontrar un .
Detalles
- representa el factorial de .
- Los dígitos de en nuestro caso se entienden en la base .
- Su envío debe funcionar para dado suficiente tiempo y memoria. Simplemente usar, por ejemplo, tipos de 32 bits para representar enteros no es suficiente.
- No necesariamente necesita generar la N mínima posible .
Ejemplos
A            N
1            1
2            2
3            9
4            8
5            7
6            3
7            6
9           96
12           5
16          89
17          69
18          76
19          63
24           4
72           6
841      12745
206591378  314
El menos posible para cada se puede encontrar en https://oeis.org/A076219

Respuestas:
Python 2 , 50 bytes
Pruébalo en línea!
Esta es una variación de la solución de 47 bytes explicada a continuación, ajustada para devolver la
1entrada'1'. (Es decir, agregamos1a la expresión completa en lugar de la llamada recursiva, y comenzamos a contarn==2para eliminar una capa de profundidad, equilibrando el resultado para todas las no'1'entradas).Python 2 , 45 bytes (asigna 1 a
True)Esta es otra variación, de @Jo King y @xnor, que toma la entrada como un número y devuelve la
Trueentrada1. Algunas personas piensan que este es un juego justo, pero personalmente lo encuentro un poco extraño.Pero cuesta solo 3 bytes envolver el resultado booleano repugnante
+(), dándonos una solución "agradable" más corta:Python 2 , 48 bytes
fuente
+1todos modos.acomo número.-aen-p'', es un buen truco :)Brachylog ,
35 bytesPruébalo en línea!
Toma entrada a través de su variable de salida y emite a través de su variable de entrada. (Al revés, solo encuentra prefijos arbitrarios del factorial de entrada, que no es tan interesante). Se agota el tiempo del último al último caso de prueba en TIO, pero funciona bien en el último . Lo he estado ejecutando en 841 en mi computadora portátil durante varios minutos al momento de escribir esto, y aún no ha escupido una respuesta, pero tengo fe en ello.
¡Ya que la única entrada
ḟa₀no funciona es 1, y 1 es un prefijo positivo de 1! = 1,1|ḟa₀funciona igual de bien.Además, a partir de esta edición, 841 ha estado funcionando durante casi tres horas y todavía no ha producido una salida. Supongo que calcular el factorial de cada número entero de 1 a 12745 no es exactamente rápido.
fuente
C ++ (gcc) ,
10795 bytes, usando-lgmpy-lgmpxxGracias a la gente en los comentarios por señalar algunos percances tontos.
Pruébalo en línea!
Computamultiplicandopor , luego lo divide repetidamente por hasta que ya no sea mayor que el entero pasado. En este punto, el ciclo termina si el factorial es igual al entero pasado, o de lo contrario pasa al siguiente .n! (n−1)! n 10 n 
fuente
107bytes.return?Jalea , 8 bytes
Pruébalo en línea!
Toma un número entero y devuelve un singleton.
fuente
05AB1E , 7 bytes
Pruébelo en línea o verifique -casi- todos los casos de prueba (se
841agota el tiempo, por lo que está excluido).Explicación:
fuente
Pyth - 8 bytes
Pruébalo en línea .
fuente
JavaScript,
4743 bytesSalida como un BigInt.
¡Pruébelo en línea!
Ahorró unos pocos bytes al adoptar el enfoque de Lynn de "construir" el factorial en lugar de calcularlo en cada iteración, así que por favor vote su solución también si está votando esta.
fuente
_Ês bU}f1en Japt no funcionas.1if0para devolverlon=1.x=i=1n;f=n=>`${x*=++i}`.search(n)?f(n):iC # (.NET Core) , 69 + 22 = 91 bytes
Pruébalo en línea!
Usos
System.Numerics.BigIntegerque requieren unausingdeclaración.-1 byte gracias a @ExpiredData!
fuente
Jalea , 16 bytes
Pruébalo en línea!
Explicación
fuente
Perl 6 , 23 bytes
Pruébalo en línea!
Explicación
fuente
Carbón , 16 bytes
Pruébalo en línea! El enlace es a la versión detallada del código. Explicación:
Empuje
1a la lista vacía para que comience con un producto definido.Repita mientras no se puede encontrar la entrada al principio del producto de la lista ...
... empuje la longitud de la lista a sí misma.
Imprima el último valor empujado a la lista.
fuente
Perl 5
-Mbigint -p, 25 bytesPruébalo en línea!
fuente
J ,
2822 bytes-6 bytes gracias a FrownyFrog
Pruébalo en línea!
respuesta original J , 28 bytes
Pruébalo en línea!
>:@] ... x:@1comenzando con una precisión extendida1, siga incrementándola mientras ...-.@no es el caso de que ...{.@el primer olmo es un partido inicial de ...E.&":todas las coincidencias de subcadenas (después de seleccionar ambos argumentos&":) de la búsqueda de la entrada original en ...!el factorial del número que estamos incrementandofuente
(]+1-0{(E.&":!))^:_&1xC (gcc) -lgmp, 161 bytes
Pruébalo en línea!
fuente
strstr(b=mpz_get_str(0,10,_),a)-b;mpz_mul(_,_,n))mpz_add_ui(n,n,1)lugar deb=mpz_get_str(0,10,_),strstr(b,a)-b;mpz_add_ui(n,n,1),mpz_mul(_,_,n))Python 3 , 63 bytes
Pruébalo en línea!
-24 bytes gracias a Jo King
-3 bytes gracias a Chas Brown
fuente
f=que se supone que lo que tienes en el encabezado cuenta para tu conteo de bits.Jalea , 11 bytes
Pruébalo en línea!
fuente
Limpio , 88 bytes
Pruébalo en línea!
Define
$ :: Integer -> Integer.Utiliza
Data.Integerenteros de tamaño arbitrario para IO.fuente
Wolfram Language (Mathematica) , 62 bytes
Pruébalo en línea!
fuente
Rubí , 40 bytes.
Pruébalo en línea!
fuente
Icono ,
6563 bytesPruébalo en línea!
fuente
Haskell, 89 bytes
Si alguien sabe cómo omitir la importación requerida, avíseme.
fuente