A342076 Digits only come in successive pairs (separated or not by a comma).
1, 11, 12, 2, 3, 31, 13, 32, 21, 14, 4, 5, 51, 15, 52, 22, 23, 33, 34, 41, 16, 6, 7, 71, 17, 72, 24, 42, 25, 53, 35, 54, 43, 36, 61, 18, 8, 9, 91, 19, 92, 26, 62, 27, 73, 37, 74, 44, 45, 55, 56, 63, 38, 81, 100, 66, 77, 88, 99, 111, 122, 112, 28, 82, 29, 93, 39, 94, 46, 64, 47, 75, 57, 76, 65, 58, 83, 300
Offset: 1
Examples
a(1) = 1 forces the next digit to be a 1 (as digits must come in pairs); the smallest positive integer not yet present that starts with a 1 and does not lead to a contradiction is 11 (as 10, ending with an odd number of 0, is forbidden). Thus, a(2) = 11; a(3) = 12 as a(3) must start with a 1 (to complete a pair of identical digits), and 12 is the smallest positive integer not yet present that does not lead to a contradiction; a(4) = 2 as 2 is the smallest positive integer not yet present that starts with a 2 and does not lead to a contradiction; etc.
Crossrefs
Programs
-
Python
mustpair = set(range(10)) def pairsup(n, offset=0): digits = list(map(int, str(n)))[offset:] if len(digits) == 0: return True, False i = 0 while i < len(digits) - 1: if digits[i] in mustpair: if digits[i] != digits[i+1]: return False, None else: i += 2 else: i += 1 unpaired = digits[-1] in mustpair and i != len(digits) return not (unpaired and digits[-1] == 0), unpaired def aupton(terms, startswith=1): alst, unpaired = [startswith], startswith in mustpair for n in range(2, terms+1): m = 1 while True: while m in alst: m += 1 if not unpaired or int(str(m)[0]) == alst[-1]%10: passes, temp = pairsup(m, offset=int(unpaired)) if passes: alst.append(m); unpaired = temp; break m += 1 return alst print(aupton(66)) # Michael S. Branicky, Feb 28 2021
Comments