Operational countdown
R, 77 74 73 bytes
-3 bytes thanks to Giuseppe and -1 byte thanks to MarcMush.

f=function(n,d=nchar(n),k=1:n)`if`(d&lt;2,n,1+f(match(n,c(k^d,k*d,k+d))%%n))

Try it online!
Recursive function; avoids floating point issues. The vector k contains all integers from 1 to n. Concatenate k^d, k*d and k+d (yielding a vector of length 3n) and find the position p of the first occurrence of n. Then \$f(n)=1+f(p \mod n)\$. The recursion is initialized by noting that \$f(n)=n\$ for all 1-digit integers (hence the conditioning on d&lt;2).
Works for all the test cases (although 21550 could require you to increase the stack limit on some machines).