Mathematica, 42 bytes
0!=##&@@d&&##&@@((d=IntegerDigits@#)∣#)&
Creo que 0!=##&@@d&&##&@@es un nuevo bajo en legibilidad para Mathematica ...
Explicación
Algunos de los azúcares sintácticos básicos utilizados aquí:
& tiene muy poca precedencia y convierte todo lo que queda en una función sin nombre.
&&es solo el Andoperador.
# es el argumento de la función sin nombre adjunta más cercana.
##es una secuencia de todos los argumentos de la función.
@es la notación de prefijo para llamadas a funciones, es decir f@x == f[x].
@@es decir Apply, que pasa los elementos de una lista como argumentos individuales a una función, es decir f@@{a,b,c} == f[a,b,c].
Con eso fuera del camino ...
(d=IntegerDigits@#)
Esto debería explicarse por sí mismo: esto nos da una lista de los dígitos decimales de la entrada y almacena el resultado en d .
(...∣#)
Esto prueba la entrada para la divisibilidad por cada uno de sus dígitos (porque el operador de divisibilidad es Listable). Esto nos da una lista de TruesyFalse s.
...&@@...
Aplicamos la función del lado izquierdo a la lista de booleanos, de modo que cada booleano es un argumento separado.
...&@@d
Aplicamos otra función a d, para que los dígitos individuales se den como argumentos separados. La función es 0!=##&, es decir . Comprueba que todos los dígitos son distintos (y que son distintos, pero eso está dado por el desafío, y si no fuera así, no sería un divisor de todos modos). en realidad es solo un ahorro de 1 byte en el uso de sí mismo, y funciona porque hay un elemento de 1 byte (Unequal[0, d1, d2, ...]00!=##&Unequal0 ) que sabemos que no está presente. Entonces, lo primero que verifica es que los dígitos son únicos. Llamemos a este resultadoU
...&&##
De nuevo, esto es realmente solo una abreviatura para And[U, ##]. Al ##ser una secuencia, los booleanos individuales de la verificación de divisibilidad inicial se expanden en la And, por lo que obtenemos qué comprobaciones de que ambos dígitos son únicos y que cada dígito divide la entrada.And[U, d1∣n, d2∣n, ...]