Desafío
Dado un número entero, n
como entrada donde 36 >= n >= 2
, salida cuántos números Lynch-Bell hay en la base n
.
La salida debe estar en la base 10.
Números de Lynch-Bell
Un número es un número de Lynch-Bell si:
- Todos sus dígitos son únicos (sin repetición de dígitos)
- El número es divisible por cada uno de sus dígitos.
- No contiene cero como uno de sus dígitos
Como todos los dígitos tienen que ser únicos y tiene un conjunto finito de números de un solo dígito en cada base, hay un número finito de números de Lynch-Bell.
Por ejemplo, en la base 2 solo hay un número de Lynch-Bell 1
, ya que todos los demás números repiten dígitos o contienen un 0.
Ejemplos
Input > Output
2 > 1
3 > 2
4 > 6
5 > 10
6 > 10
7 > 75
8 > 144
9 > 487
10 > 548
Mathematica Online se quedó sin memoria por encima de la base 10. Puede usar el siguiente código para generar el suyo propio:
Do[Print[i," > ",Count[Join@@Permutations/@Rest@Subsets@Range[#-1],x_/;And@@(x\[Divides]FromDigits[x,#])]&[i]],{i,10,36,1}]
Victorioso
El código más corto en bytes gana.
>10
?
f(36)
. Hacer un desafío de código más rápido basado en esto sería probablemente interesante.