OFFSET
1,1
COMMENTS
This was suggested by postings by Eric Angelini and Allan Wechsler to Math-Fun Mailing List, Dec. 29, 2020. It is an open question whether or not this sequence is complete. In fact, it is open whether or not the sequence of iterates of x -> A340270(x) starting with n always enters a cycle. There are no counterexamples up to 10^8.
As Allan Wechsler pointed out, if x contains 0 then A340270(x) = 1 and if x contains a digit 1 then A340270(x) is x with the 1 deleted.
From M. F. Hasler, Jan 03 2021: (Start)
The trajectory of all these integers ends in one of 3 cycles:
C(25) = (25) (also for n = 52, for n = 35 and 53 via 125, and for n = 38 and 83 via 512, and for n = 239, 329 and 392 via 1521 and 152);
C(26) = (26, 36, 216) (also for n = 62 and 63, for n = 246 and 426 and 462 via 2116 and 216);
C(926) = (926, 9216): also for 296 and 962, for 28, 34, 43 and 82 via 64 and 1296, also for 46, 236, 326 and 362 via 1296, and for 254, 524 and 54 via 2916. (End)
EXAMPLE
Iterating the function x->A340270(x) starting with 34 we get 34 --> 4^3 = 64 --> 6^4 = 1296 --> 296^1 = 296 --> 96^2 = 9216 --> 926^1 = 926 --> 96^2 = 9216. So 34 is in this sequence.
MAPLE
leastdigit:=proc(n) min(convert(n, base, 10)); end:
locationdigit:=proc(n, d) local L, i;
L:=convert(n, base, 10);
for i from 1 to nops(L) do
if d = L[i] then return (nops(L)+1-i); fi;
od:
end:
cutout:=proc(X, i) [seq(X[j], j=1..i-1), seq(X[j], j=i+1..nops(X))]; end:
ToNum:=proc(X) add(X[i]*10^(nops(X)-i), i=1..nops(X)); end:
removeleastdigit:=proc(n) local i, X;
i:=locationdigit(n, leastdigit(n));
X:=ListTools:-Reverse(convert(n, base, 10));
ToNum(cutout(X, i));
end proc:
h:=proc(n) removeleastdigit(n)^leastdigit(n); end:
F:=proc(N) local i, L;
if h(N) = N then return [N]; fi;
L:=[N];
for i from 1 do
L:=[op(L), h(L[-1])];
if nops(L) > nops(convert(L, set)) then return L; fi;
od:
fail;
end proc:
G:=proc(X) if X[-1] < 10 then return "S"; else return "L"; fi; end proc:
L:=NULL:
for n from 1 to 1000 do
sss:=convert(n, base, 10):
if has(0, sss) or has(1, sss) then next; fi;
u:=F(n);
if u = fail then print(n, u); break; fi;
if G(u) = "L" then L:=L, n; fi;
od:
L;
PROG
(Python)
def ok(n):
strn = str(n)
if "0" in strn or "1" in strn: return False
iterates = {n}
n = A340270(n)
while n not in iterates:
iterates.add(n)
n = A340270(n)
repeated = n
if n > 9: return True
n = A340270(n)
while n != repeated:
n = A340270(n)
if n > 9: return True
return False
print([n for n in range(1, 1001) if ok(n)]) # Michael S. Branicky, Jan 02 2021
(PARI) [n | n<-[1..9999], vecmin(digits(n))>1 && orbit(n)[1]>9] \\ with:
orbit(n, U=[n], m)={ while(n>9, my( m=vecmin(n=digits(n)));
forstep( i=#n, 1, -1, if( n[i]==m, n=fromdigits(n[^i])^m; break)); setsearch(U, n) && break; U=setunion(U, [n])); U} \\ M. F. Hasler, Jan 03 2021
CROSSREFS
KEYWORD
base,nonn,more
AUTHOR
W. Edwin Clark, Jan 02 2021
STATUS
approved