OFFSET
1,1
COMMENTS
At least two substrings are required and each substring must have at least one digit.
A subsequence is A032799 (except for 1-digit numbers).
Unlike A032799, which is finite, this sequence is infinite because; e.g., the pattern 89, 9899, 998999, ... can always be split into two equal-length substrings that generate a term as (10^i - 2)^1 + (10^i - 1)^2 = 10^i*(10^i - 2) + (10^i - 1) for all i > 0.
Leading zeros in strings are allowed here. The first such term generated by the author's program is 1010053 = 1^1 + (01005)^2 + 3^3. - Michael S. Branicky, Nov 30 2024
Another pattern is deduced from a(38) = 1000100 = 100^1 + 0^2 + 100^3 with formula (10^i)^1 + 0^2 + ... + 0^n + ([0...0]10^i)^(n+1) = (10^i)^(n+1) + 10^i with i > 1 and n > 1. - Francesco Di Matteo, Jan 15 2025
EXAMPLE
175 = 1^1 + 7^2 + 5^3 is a term.
5755 = 5^1 + 75^2 + 5^3 is a term.
88297 = 88^1 + 297^2 is a term.
234322 = 23^1 + 4^2 + 3^3 + 22^4 is a term.
PROG
(Python)
import itertools
analys = range(1, 7) # increase this if you want
for limite in analys:
numbers = range(pow(10, limite-1), pow(10, limite))
r = range(1, limite+1)
disp_temp = []
for s in r:
disp = list(itertools.product(r, repeat=s+1))
disp_temp.extend(disp)
disp_ok = [d for d in disp_temp if sum(d)==limite]
for numero in numbers:
str_numero = str(numero)
for combo in disp_ok:
k = limite
totale = 0
for c in range(len(combo), 0, -1):
partenza = k-combo[c-1]
porzione = str_numero[partenza:k]
if c == 1:
totale = totale + int(porzione)
else:
totale = totale + pow(int(porzione), c)
k = k - combo[c-1]
if totale == numero:
print(numero)
CROSSREFS
KEYWORD
nonn,base
AUTHOR
Francesco Di Matteo, Oct 28 2024
STATUS
approved