OFFSET
1,2
COMMENTS
Let d be the number of digits of m (in base 10). One can show that the number m is a member of this sequence if and only if:
1) m is divisible by d AND m < 10^d * d/(d+1)
OR
2) 10^d is divisible by d+1 AND m >= 10^d * d/(d+1).
Equivalently, integers m in the block 10^(d-1) <= m < 10^d are included in this sequence based on their relation to the value s = 10^d * d/(d+1). If m < s, then m is in this sequence iff m is divisible by d. If m >= s, m is in this sequence iff s is an integer. Note that for d = 2, s = 66.666... so no integers m in the range 66.666... <= m < 100 are in this sequence. For d = 3, s = 750 is an integer so all integers m in the range 750 <= m < 1000 are in this sequence. - Dominic McCarty, Sep 09 2024
LINKS
Dominic McCarty, Table of n, a(n) for n = 1..10000
EXAMPLE
7 is a term because if we concatenate 7, 8, 9, 10, and 11, we get 7891011, which has 7 digits.
102 is a term because we can concatenate 102 with the next 33 consecutive integers to get a number with 34*3 = 102 digits.
68 is not a term because if we concatenate 68,69,...,100 we get a 67-digit number and concatenating 101 with this yields a 70-digit number, so it is not possible to achieve a 68-digit number.
MATHEMATICA
SelfConsecutiveQ[n_] :=
Module[{len = Length@IntegerDigits[n], counter = 1, numDigits = 0},
If[len*(Power[10, len] - n) >= n, Return[Mod[n, len] == 0],
numDigits = len*(Power[10, len] - n)];
Mod[n - numDigits, len + 1] == 0
]
Select[Range[1000], SelfConsecutiveQ[#] &]
PROG
(JavaScript) function next(m){let d=(""+m).length; if(m*(d+1)<d*(10**d)){m-=m%d; if((m+d)*(d+1)>d*(10**d)){return next(10**d)}else{return m+d}}else{if((10**d)%(d+1)==0){return m+1}else{return next(10**d)}}}let m=0; a=""; while(m<168){m=next(m); a+=m+", "}console.log(a) // Dominic McCarty, Sep 09 2024
CROSSREFS
KEYWORD
easy,nonn,base
AUTHOR
Nicholas M. R. Frieler, Aug 17 2024
STATUS
approved