JavaScript (V8) , 76 bytes
Prints the sequence indefinitely.
for(k=9;++k;)(g=x=>x>1?g(x%d++?x:x/--d):k+g)(k-1,d=2).match(d+"x")&&print(k)
JavaScript (ES6), 8079 bytes
f=(n,k)=>!(g=x=>x>1?g(x%d++?x:x/--d):k+""k+g)(k-1,d=2).match(d+"$"d+"x")||n--?f(n,-~k):k
f = ( // f is a recursive function taking:
n, // n = input
k // k = counter, initially undefined
) => //
!( //
g = x => // g is a recursive function taking x:
x > 1 ? // if x is greater than 1:
g( // do a recursive call to g:
x % d++ ? // if d is not a divisor of x
// (increment d afterwards):
x // leave x unchanged
: // else:
x / --d // restore d and divide x by d
) // end of recursive call
: // else:
k + ""g // return k, converted to a string with
) // a suffix starting with "x"
(k - 1, d = 2) // initial call to g with k - 1 and d = 2
.match(d + "$""x") // if d is not a suffix of k
|| n-- ? // or n is not 0 (decrement it afterwards):
f(n, -~k) // try again with k + 1
: // else:
k // stop and return k
JavaScript (ES6), 80 bytes
f=(n,k)=>!(g=x=>x>1?g(x%d++?x:x/--d):k+"")(k-1,d=2).match(d+"$")||n--?f(n,-~k):k
f = ( // f is a recursive function taking:
n, // n = input
k // k = counter, initially undefined
) => //
!( //
g = x => // g is a recursive function taking x:
x > 1 ? // if x is greater than 1:
g( // do a recursive call to g:
x % d++ ? // if d is not a divisor of x
// (increment d afterwards):
x // leave x unchanged
: // else:
x / --d // restore d and divide x by d
) // end of recursive call
: // else:
k + "" // return k, converted to a string
) //
(k - 1, d = 2) // initial call to g with k - 1 and d = 2
.match(d + "$") // if d is not a suffix of k
|| n-- ? // or n is not 0 (decrement it afterwards):
f(n, -~k) // try again with k + 1
: // else:
k // stop and return k
JavaScript (V8) , 76 bytes
Prints the sequence indefinitely.
for(k=9;++k;)(g=x=>x>1?g(x%d++?x:x/--d):k+g)(k-1,d=2).match(d+"x")&&print(k)
JavaScript (ES6), 79 bytes
f=(n,k)=>!(g=x=>x>1?g(x%d++?x:x/--d):k+g)(k-1,d=2).match(d+"x")||n--?f(n,-~k):k
f = ( // f is a recursive function taking:
n, // n = input
k // k = counter, initially undefined
) => //
!( //
g = x => // g is a recursive function taking x:
x > 1 ? // if x is greater than 1:
g( // do a recursive call to g:
x % d++ ? // if d is not a divisor of x
// (increment d afterwards):
x // leave x unchanged
: // else:
x / --d // restore d and divide x by d
) // end of recursive call
: // else:
k + g // return k, converted to a string with
) // a suffix starting with "x"
(k - 1, d = 2) // initial call to g with k - 1 and d = 2
.match(d + "x") // if d is not a suffix of k
|| n-- ? // or n is not 0 (decrement it afterwards):
f(n, -~k) // try again with k + 1
: // else:
k // stop and return k
Commented
f = ( // f is a recursive function taking:
n, // n = input
k // k = counter, initially undefined
) => //
!( //
g = x => // g is a recursive function taking x:
x > 1 ? // if x is greater than 1:
g( // do a recursive call to g:
x % d++ ? // if d is not a divisor of x
// (increment d afterwards):
x // leave x unchanged
: // else:
x / --d // restore d and divide x by d
) // end of recursive call
: // else:
k + "" // return k, converted to a string
) //
(k - 1, d = 2) // initial call to g with k - 1 and d = 2
.match(d + "$") // if d is not a suffix of k
|| n-- ? // or n is not 0 (decrement it afterwards):
f(n, -~k) // try again with k + 1
: // else:
k // stop and return k
Commented
f = ( // f is a recursive function taking:
n, // n = input
k // k = counter, initially undefined
) => //
!( //
g = x => // g is a recursive function taking x:
x > 1 ? // if x is greater than 1:
g( // do a recursive call to g:
x % d++ ? // if d is not a divisor of x
// (increment d afterwards):
x // leave x unchanged
: // else:
x / --d // restore d and divide x by d
) // end of recursive call
: // else:
k + "" // return k, converted to a string
) //
(k - 1, d = 2) // initial call to g with k - 1 and d = 2
.match(d + "$") // if d is not a suffix of k
|| n-- ? // or n is not 0 (decrement it afterwards):
f(n, -~k) // try again with k + 1
: // else:
k // stop and return k
JavaScript (ES6), 8380 bytes
Returns the \$n\$-th term of the sequence, 1-indexed.
f=(i,n,k)=>!(n+"").match((g=n=>k<=ng=x=>x>1?g(n%k++x%d++?nx:nx/--kd):k+"$"k+"")(nk-1,k=2d=2).match(d+"$")||i||n--?f(in,-~n~k):nk
JavaScript (ES6), 83 bytes
Returns the \$n\$-th term of the sequence, 1-indexed.
f=(i,n)=>!(n+"").match((g=n=>k<=n?g(n%k++?n:n/--k):k+"$")(n-1,k=2))||i--?f(i,-~n):n
JavaScript (ES6), 80 bytes
Returns the \$n\$-th term of the sequence, 1-indexed.
f=(n,k)=>!(g=x=>x>1?g(x%d++?x:x/--d):k+"")(k-1,d=2).match(d+"$")||n--?f(n,-~k):k