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.

Showing 1-1 of 1 results.

A363422 Numbers k which satisfy k = concat(a,b,...) and a*b*... = reverse(k), for some two or more a,b,...

Original entry on oeis.org

351, 621, 886, 5931, 86673, 97533, 425322, 430762, 920781, 3524751, 4495491, 4834872, 5594151, 5941971, 6218001, 6801381, 6916671, 8630841, 32331001, 44235301, 57982563, 67968432, 68577483, 69617484, 71673981, 88873491, 89943354, 119910901, 338752611
Offset: 1

Views

Author

David L. Reens, Jun 01 2023

Keywords

Comments

k > reverse(k) for all terms, sometimes narrowly, see a(28) = 119910901.
This is easily shown: c=concat(a,b), c/a > (c-b)/a = 10^(#digits of b) > b; c > b*a.
Follows for triple or higher concatenations by induction.
Of the first 39 terms, 12 arise due to concatenations of only two numbers and are therefore also present in A281555.
No terms yet found with a product of more than five numbers.
Sometimes a term B relates to an earlier term A via a particular number N for which B=concat(A,N) and reverse(B)=reverse(A)*reverse(N). This is true of B=a(15), A=a(2), and N=8001 for example.

Examples

			153 = 3*51.
1395 = 5*9*31.
1945944 = 44*9*54*91.
1008126 = 6*21*8001.
171548496 = 6*94*84*51*71.
		

Crossrefs

A267939 is contained in the intersection of this sequence and A281555.

Programs

  • Python
    # Find numbers with a de-concatenation that multiplies to their reverse.
    import math
    def digits(x):
        y = []
        while x>0:
            y = [x%10] + y
            x//=10
        return y
    def check(x):
        xx = digits(x)
        if xx[0] < xx[-1]:
            return
        for i in range(1,2**(len(xx)-1)):
            for dnum,digit in enumerate(xx):
                if dnum==0:
                    thisProd = [xx[0]]
                elif i&(2**(dnum-1)):
                    if digit==0:
                        break
                    thisProd += [digit]
                else:
                    thisProd[-1] = thisProd[-1]*10+digit
            answer = math.prod(thisProd)
            if not answer%10==xx[0]:
                continue
            if digits(answer)[-1::-1]==xx:
                print('\r'+str(thisProd).replace(', ','x')[1:-1])
                return
        return
    i=0
    while True:
        i += 1
        if not i%10000:
            print('\r'+str(i),end='')
        check(i)
Showing 1-1 of 1 results.