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.

A225592 a(n) = size of the network of triangular(n). Distinct triangular numbers T and R are directly connected if R = T*k, and k>0 is a triangular number less than T. Numbers belong to the same network if there is a chain of direct connections between them.

Original entry on oeis.org

1, 1, 1, 1, 2, 7, 1, 1, 2, 8, 2, 3, 7, 7, 1, 1, 1, 5, 4, 7, 2, 3, 4, 1, 1, 1, 1, 2, 2, 1, 1, 1, 3, 8, 7, 2, 4, 6, 3, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 3, 1, 1, 1, 8, 1, 1, 1, 2, 1, 4, 1, 2, 2, 1, 1, 1, 3, 2, 3, 1, 1, 1, 1, 4, 3, 2, 5, 2, 1, 1, 1, 1, 8, 1, 1, 1, 1, 1, 7, 2
Offset: 1

Views

Author

Alex Ratushnyak, May 11 2013

Keywords

Examples

			Triangular(6) = 21 belongs to the network with the following members: 21, 105, 210, 630, 19110, 25200, 145530. So a(6) = 7.
Triangular(133) = 8911 belongs to the network with the following members: 8911, 810901, 28158760, 3104129028, 328779810450, 543633020560, 18474540054600, 45742477468287600, 1553903798634573750. So a(133) = 9.
		

Crossrefs

Programs

  • Python
    def isTriangular(a):
        sr = 1 << (a.bit_length() >> 1)
        a += a
        while a < sr*(sr+1):  sr>>=1
        b = sr>>1
        while b:
          s = sr+b
          if a >= s*(s+1):  sr = s
          b>>=1
        return (a==sr*(sr+1))
    network = [0]*1000
    readPos = writePos = 0
    def addConnection(R):
      global writePos
      if isTriangular(R):
        for j in range(readPos):
          if network[j]==R:  return
        network[writePos] = R
        writePos += 1
    for i in range(1, 1000000):
        readPos, writePos = 0, 1
        network[0] = i*(i+1)//2
        while readPos < writePos:
          T = network[readPos]
          readPos += 1
          n = k = 3
          while k < T:
            addConnection(T*k)
            if T % k == 0 and T//k > k:  addConnection(T//k)
            k += n
            n += 1
        print(readPos, end=', ')