El fondo
La gente hablaba de factorización principal en el chat y nos encontramos hablando de repunidades. Las repunidades son un subconjunto de los números conocidos como repdigits, que son números que consisten solo en dígitos repetidos, como 222
o 4444444444444444
, pero que consisten solo en repunits 1
.
El primer par de repunits son, por tanto 1
, 11
, 111
, etc. Estos se conocen por R n , por lo que R 1 = 1
, R 2 = 11
, etc., y son generados por la fórmula R(n) = (10^n - 1)/9
, con n > 0
.
La factorización prima de estos números de repunidad sigue la secuencia A102380 en el OEIS. Por ejemplo:
R 1 = 1
R 2 = 11
R 3 = 111 = 3 * 37
R 4 = 1111 = 11 * 101
R 5 = 11111 = 41 * 271
R 6 = 111111 = 3 * 7 * 11 * 13 * 37
R 7 = 1111111 = 239 * 4649
...
El reto
Escriba un programa o función que, cuando se le da un número entero de entrada n a n >= 2
través de STDIN o equivalente , genera o devuelve los factores primos novedosos para R n , en cualquier formato conveniente. "Novel factores primos" aquí se refiere a todos x
, donde x
es un factor primordial de R n , pero x
no es un factor primordial para cualquier anterior R k , con 1 <= k < n
(es decir, si escribimos los factores primos para todos R en la secuencia, hemos visto que no x
antes de).
Los ejemplos
Input: 6
Output: 7, 13
(because 3, 11, and 37 are factors of a smaller R_k)
Input: 19
Output: 1111111111111111111
(because R_19 is prime, so no other factors)
Input: 24
Output: 99990001
(because 3, 7, 11, 13, 37, 73, 101, 137, 9901 are factors of a smaller R_k)
Input: 29
Output: 3191, 16763, 43037, 62003, 77843839397
(because no factors of R_29 are also factors of a smaller R_k)
Los extras:
- Su código puede hacer cualquier cosa o nada si
n < 2
. - Puede suponer un límite superior "razonable" para
n
fines de prueba y ejecución: no se esperará que su código salgan = 10000000
, por ejemplo, pero su algoritmo debería funcionar para tal caso si se le da una potencia y tiempo de cómputo ilimitados. - Aquí hay un sitio dedicado a las factorizaciones de repunidades como referencia.
- No he pasado por las matemáticas, pero propongo una hipótesis de que cada n tiene un resultado distinto para este algoritmo, es decir, no existe n tal que R n no tenga factores novedosos.
Ofreceré una recompensa de 250 puntos si alguien prueba o refuta eso en su respuesta.Thomas Kwa propuso una prueba elegante , y le otorgué la recompensa.