This is a front-end for the Online Encyclopedia of Integer Sequences, made by Christian Perfect. The idea is to provide OEIS entries in non-ancient HTML, and then to think about how they're presented visually. The source code is on GitHub.
%I A381242 #16 Mar 26 2025 21:47:33 %S A381242 2,3,20,22,28,30,200,202,220,248,280,300,2000,2002,2020,2022,2200, %T A381242 2480,2800,3000,3252,3272,20000,20002,20020,20022,20200,20220,22000, %U A381242 23252,24800,28000,30000,32520,32720,200000,200002,200020,200022,200200,200202,200220 %N A381242 Lexicographically earliest sequence of distinct terms > 1 such that no term is a substring of the product of any two terms. %C A381242 The "two terms" mentioned in the name are not necessarily distinct, so no term is the substring of the square of any term. %C A381242 It can be shown that the digits 1 and 6 never appear, and that all terms start with either a 2 or a 3. %C A381242 If k is in the sequence, then so is 10*k. %C A381242 Conjecture: The digit 9 never appears. %e A381242 For calculating a(3): %e A381242 If 4 was in the sequence, 3*4 = 12 would have 2 as a substring, so it is disallowed. %e A381242 If 5 was in the sequence, 3*5 = 15 would have 5, itself, as a substring, so it is disallowed. %e A381242 The first term that is allowed is 20, since 20 is the first term not to have 2, 3, or itself as a substring of any of the following: 2*20 = 40, 3*20 = 60, 20*20 = 400. %e A381242 So, a(3) = 20. %o A381242 (Python) %o A381242 a = [2] %o A381242 while len(a) < 20: %o A381242 a.append(a[-1]+1) %o A381242 while any(any(str(k) in str(a[i]*a[j]) for k in a) for i in range(len(a)) for j in range(i,len(a))): a[-1] += 1 %o A381242 print(a) %o A381242 (Python) %o A381242 from itertools import count, islice %o A381242 def agen(): # generator of terms %o A381242 slst, alst, an = [], [], 2 %o A381242 S = {"4"} # strings of products of two terms (including self products) %o A381242 while True: %o A381242 alst.append(an) %o A381242 slst.append(str(an)) %o A381242 yield an %o A381242 for k in count(an+1): %o A381242 sk = str(k) %o A381242 if any(sk in s for s in S): continue %o A381242 Pk = [str(ai*k) for ai in alst] + [str(k*k)] %o A381242 if any(si in s for s in Pk for si in slst+[sk]): continue %o A381242 an = k %o A381242 S |= set(Pk) %o A381242 break %o A381242 print(list(islice(agen(), 42))) # _Michael S. Branicky_, Mar 26 2025 %Y A381242 Cf. A382453 %K A381242 nonn,base %O A381242 1,1 %A A381242 _Dominic McCarty_, Mar 24 2025