cp's OEIS Frontend

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.

A356177 Palindromes in A333369.

Original entry on oeis.org

1, 3, 5, 7, 9, 22, 44, 66, 88, 111, 212, 232, 252, 272, 292, 333, 414, 434, 454, 474, 494, 555, 616, 636, 656, 676, 696, 777, 818, 838, 858, 878, 898, 999, 2002, 2222, 2442, 2662, 2882, 4004, 4224, 4444, 4664, 4884, 6006, 6226, 6446, 6666, 6886, 8008, 8228, 8448, 8668, 8888, 10101
Offset: 1

Views

Author

Bernard Schott, Jul 28 2022

Keywords

Comments

If a term has a decimal digit that is odd, it must have an odd number of decimal digits and all odd digits are the same. - Chai Wah Wu, Jul 29 2022
If a term has an even number of decimal digits, then it must have only even decimal digits. - Bernard Schott, Jul 30 2022

Examples

			474 is palindrome and 474 has two 4's and one 7 in its decimal expansion, hence 474 is a term.
		

Crossrefs

Intersection of A002113 and A333369.
Cf. A355770, A355771, A355772, A100706 (subsequence of repunits).

Programs

  • Mathematica
    simQ[n_] := AllTrue[Tally @ IntegerDigits[n], EvenQ[Plus @@ #] &]; Select[Range[10^4], PalindromeQ[#] && simQ[#] &] (* Amiram Eldar, Jul 28 2022 *)
  • Python
    from itertools import count, islice, product
    def simb(n): s = str(n); return all(s.count(d)%2==int(d)%2 for d in set(s))
    def pals(): # generator of palindromes
        digits = "0123456789"
        for d in count(1):
            for p in product(digits, repeat=d//2):
                if d > 1 and p[0] == "0": continue
                left = "".join(p); right = left[::-1]
                for mid in [[""], digits][d%2]:
                    yield int(left + mid + right)
    def agen(): yield from filter(simb, pals())
    print(list(islice(agen(), 55))) # Michael S. Branicky, Jul 28 2022
    
  • Python
    # faster version based on Comments
    from itertools import count, islice, product
    def odgen(d): yield from [1, 3, 5, 7, 9] if d == 1 else sorted(int(f+"".join(p)+o+"".join(p[::-1])+f) for o in "13579" for f in o + "2468" for p in product(o+"02468", repeat=d//2-1))
    def evgen(d): yield from (int(f+"".join(p)+"".join(p[::-1])+f) for f in "2468" for p in product("02468", repeat=d//2-1))
    def A356177gen():
        for d in count(1, step=2): yield from odgen(d); yield from evgen(d+1)
    print(list(islice(A356177gen(), 55))) # Michael S. Branicky, Jul 30 2022