JavaScript (ES6), 80 79 bytes
Expects a string.
f=(n,m=n,k=2)=>n%k?k>n||f(n,m,k+1):m-k&&m.match([...k+''].join`.*`)&&f(n/k,m,k) Commented
f = ( // f is a recursive function taking: n, // n = initially the input as a string, // then an integer m = n, // m = copy of the input k = 2 // k = current divisor candidate ) => // n % k ? // if k is not a divisor of n: k > n || // stop the recursion if k > n f(n, m, k + 1) // otherwise: do a recursive call with k + 1 : // else: m - k && // if k is not equal to m m.match( // and we can find in m: [...k + ''] // and the digits of k canin bethe foundcorrect inorder [...k + ''].join`.*` // thepossibly correctwith orderother digits in m:between ) && // //then: f(n / k, m, k) // do a recursive call with n / k