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.

A265650 Removing the first occurrence of 1, 2, 3, ... reproduces the sequence itself. Each run of consecutive removed terms is separated from the next one by a term a(k) <= a(k-1) such that floor(sqrt(a(k))) equals the length of the run.

Original entry on oeis.org

1, 1, 2, 1, 3, 2, 4, 1, 5, 3, 6, 2, 7, 8, 4, 9, 1, 10, 11, 5, 12, 3, 13, 14, 6, 15, 2, 16, 17, 7, 18, 19, 8, 20, 21, 4, 22, 23, 24, 9, 25, 1, 26, 27, 28, 10, 29, 30, 31, 11, 32, 33, 5, 34, 35, 36, 12, 37, 3, 38, 39, 40, 13, 41, 42, 43, 14, 44, 45, 6, 46, 47, 48, 15, 49, 2, 50, 51, 52, 53, 16, 54, 55, 56, 57, 17, 58, 59, 7, 60, 61, 62, 63, 18, 64, 65, 66
Offset: 1

Views

Author

Keywords

Comments

A fractal sequence: If one deletes the first occurrence of 1, 2, 3, ... the original sequence is reproduced.
Subsequent runs of consecutive terms which are these first occurrences are separated by a term whose square root yields the length of the preceding run (when rounded down).
Motivated by Project Euler problem 535, see LINKS.
The sequence contains marked numbers and non-marked numbers. A number is marked if it is the first occurrence of that number.
The marked numbers are consecutive starting with a(1)=1.
Immediately preceding each non-marked number in a(n), there are exactly floor(sqrt(a(n))) [= A000196(a(n))] adjacent marked numbers.

Examples

			The runs of first occurrences of the positive integers are {1}, {2}, {3}, {4}, {5}, {6}, {7, 8}, {9}, {10, 11}, ... each separated from the next one by, respectively, 1, 1, 2, 1, 3, 2, 4, 1, 5, ... where 4 and 5 follow the groups {7, 8} and {10, 11} of length 2 = sqrt(4) = floor(sqrt(5)). - _M. F. Hasler_, Dec 13 2015
		

Crossrefs

Programs

  • C
    #include 
    #include 
    #define SIZE 1000
    unsigned int numbers[SIZE];
    int main() {
      unsigned int pointer=0, next=1, circle_count=1, next_circle_number=2, sqrt_non_circle=1;
      numbers[0]=1; printf("1");
      while (next
    				
  • PARI
    A265650(n, list=0, a=[1], cc=0, nc=1, p=0)={for(i=2, n, a=concat(a, if(0<=cc-=1, nc+=1, cc=sqrtint(a[!!p+p+=1]); a[p]))); list&&return(a); a[n]} \\ Set 2nd optional arg.to 1 to return the whole list. - M. F. Hasler, Dec 13 2015

Extensions

New name from M. F. Hasler, Dec 13 2015