OFFSET
1,2
COMMENTS
Inspired by the 413th problem of Project Euler (see link) where such a number is called "one-child number".
There are k*(k+1)/2 substrings. All are considered, even when some are duplicates as strings or as numbers (see the Example section). 0 is always divisible by k so any number with two or more 0 digits is not a term. - Kevin Ryde, Mar 08 2021
The 2-digit terms are odd.
The number of k-digit terms for k = 1, 2, 3 is respectively 9, 20, 360.
From Robert Israel, Mar 11 2021: (Start)
5-digit terms are numbers starting with 5, and with no other digits 5 or 0.
There are no 10-digit terms. (End)
LINKS
Robert Israel, Table of n, a(n) for n = 1..10000
Project Euler, Problem 413: One-child Numbers.
EXAMPLE
107 is a 3-digit one-child number since among its substrings 1, 0, 7, 10, 07, 107 only 0 is divisible by 3.
222 is a 3-digit one-child number since among its substrings 2, 2, 2, 22, 22, 222 only 222 is divisible by 3.
572 is not a 3-digit one-child number, since among its substrings 5, 7, 1, 57, 72, 572 both 57 and 72 are divisible by 3.
616 is not a 3-digit one-child number, since among its substrings 6, 1, 6, 61, 16, 616 the two 6's are both divisible by 3.
MAPLE
filter:= proc(n) local L, d, i, j, k, ct, x;
L:= convert(n, base, 10);
d:= nops(L);
ct:= 0:
for i from 1 to d do
for j from i to d do
x:= add(L[k]*10^(k-i), k=i..j);
if x mod d = 0 then ct:= ct+1; if ct = 2 then return false fi fi;
od od;
evalb(ct = 1)
end proc:
select(filter, [$1..200]); # Robert Israel, Mar 11 2021
PROG
(Python)
def ok(n):
s, c = str(n), 0
ss = (s[i:j] for i in range(len(s)) for j in range(i+1, len(s)+1))
for w in ss:
if int(w)%len(s) == 0: c += 1
if c == 2: return False
return n > 0 and c == 1
print([k for k in range(162) if ok(k)]) # Michael S. Branicky, Aug 15 2022
CROSSREFS
KEYWORD
nonn,base
AUTHOR
Bernard Schott, Mar 08 2021
STATUS
approved