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.

A097465 a(1) = 1; for n>1, a(n) = smallest positive integer which is not among earlier terms of sequence, is coprime to a(n-1) and is not equal to a(n-1) +- 1.

Original entry on oeis.org

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

Views

Author

Leroy Quet, Aug 23 2004

Keywords

Comments

A permutation of the positive integers. [This follows easily by standard arguments. One shows that all primes appear. If a number k is missing, find a prime term P that is much greater than k. Then the term following P will be k. Contradiction. - N. J. A. Sloane, May 06 2022]

Examples

			a(8) = 11 because, among the positive integers not occurring earlier in the sequence (6,8,10,11,12,...), 11 is the smallest which is coprime to a(7)=9, is not a(7)+1=10 and is not a(7)-1=8.
		

Crossrefs

Programs

  • Maple
    A:=proc(n) option remember; local t, S; S:=({$1..1000} minus {seq(A(i),i=1..n-1)}) minus {A(n-1)-1,A(n-1)+1}; t:=min(S[]); while igcd(A(n-1),t)>1 do S:=S minus {t}; t:=min(S[]) od; t end: A(1):=1: seq(A(n), n=1..200); # Alec Mihailovs (alec(AT)mihailovs.com), Aug 23 2004
  • Mathematica
    a[1] = 1; a[n_] := a[n] = Block[{t = Table[ a[i], {i, n - 1}], k = 2}, While[k == a[n - 1] - 1 || k == a[n - 1] + 1 || GCD[a[n - 1], k] != 1 || Position[t, k] != {}, k++ ]; k]; Table[ a[n], {n, 50}] (* Robert G. Wilson v, Aug 23 2004 *)
  • Python
    from math import gcd
    from itertools import islice
    def agen(): # generator of terms
        an, aset, mink = 1, {1}, 2
        while True:
            yield an
            k = mink
            while k in aset or gcd(an, k) != 1 or abs(k-an) == 1: k += 1
            an = k
            aset.add(an)
            while mink in aset: mink += 1
    print(list(islice(agen(), 72))) # Michael S. Branicky, May 02 2022

Extensions

More terms from Alec Mihailovs (alec(AT)mihailovs.com) and Robert G. Wilson v, Aug 23 2004