# The On-Line Encyclopedia of Integer Sequences (OEIS)¶

You can query the OEIS (Online Database of Integer Sequences) through Sage in order to:

• identify a sequence from its first terms.
• obtain more terms, formulae, references, etc. for a given sequence.

AUTHORS:

• Thierry Monteil (2012-02-10 – 2013-06-21): initial version.
• Vincent Delecroix (2014): modifies continued fractions because of trac ticket #14567
• Moritz Firsching (2016): modifies handling of dead sequence, see trac ticket #17330

EXAMPLES:

sage: oeis
The On-Line Encyclopedia of Integer Sequences (https://oeis.org/)


What about a sequence starting with $$3, 7, 15, 1$$ ?

sage: search = oeis([3, 7, 15, 1], max_results=4) ; search  # optional -- internet
0: A001203: Simple continued fraction expansion of Pi.
1: A240698: Partial sums of divisors of n, cf. A027750.
2: A082495: a(n) = (2^n - 1) mod n.
3: A165416: Irregular array read by rows: The n-th row contains those distinct positive integers that each, when written in binary, occurs as a substring in binary n.

sage: [u.id() for u in search]                      # optional -- internet
['A001203', 'A240698', 'A082495', 'A165416']
sage: c = search[0] ; c                             # optional -- internet
A001203: Simple continued fraction expansion of Pi.

sage: c.first_terms(15)                             # optional -- internet
(3, 7, 15, 1, 292, 1, 1, 1, 2, 1, 3, 1, 14, 2, 1)

sage: c.examples()                                  # optional -- internet
0: Pi = 3.1415926535897932384...
1:    = 3 + 1/(7 + 1/(15 + 1/(1 + 1/(292 + ...))))
2:    = [a_0; a_1, a_2, a_3, ...] = [3; 7, 15, 1, 292, ...]

sage: c.comments()                                  # optional -- internet
0: The first 5,821,569,425 terms were computed by _Eric W. Weisstein_ on Sep 18 2011.
1: The first 10,672,905,501 terms were computed by _Eric W. Weisstein_ on Jul 17 2013.
2: The first 15,000,000,000 terms were computed by _Eric W. Weisstein_ on Jul 27 2013.

sage: x = c.natural_object() ; type(x)              # optional -- internet
<class 'sage.rings.continued_fraction.ContinuedFraction_periodic'>

sage: x.convergents()[:7]                           # optional -- internet
[3, 22/7, 333/106, 355/113, 103993/33102, 104348/33215, 208341/66317]

sage: RR(x.value())                                 # optional -- internet
3.14159265358979
sage: RR(x.value()) == RR(pi)                       # optional -- internet
True


What about posets ? Are they hard to count ? To which other structures are they related ?

sage: [Posets(i).cardinality() for i in range(10)]
[1, 1, 2, 5, 16, 63, 318, 2045, 16999, 183231]
sage: oeis(_)                                       # optional -- internet
0: A000112: Number of partially ordered sets ("posets") with n unlabeled elements.
sage: p = _[0]                                      # optional -- internet

sage: 'hard' in p.keywords()                        # optional -- internet
True
sage: len(p.formulas())                             # optional -- internet
0
sage: len(p.first_terms())                          # optional -- internet
17

sage: p.cross_references(fetch=True)                # optional -- internet
0: A000798: Number of different quasi-orders (or topologies, or transitive digraphs) with n labeled elements.
1: A001035: Number of partially ordered sets ("posets") with n labeled elements (or labeled acyclic transitive digraphs).
2: A001930: Number of topologies, or transitive digraphs with n unlabeled nodes.
3: A006057: Number of topologies on n labeled points satisfying axioms T_0-T_4.
4: A079263: Number of constrained mixed models with n factors.
5: A079265: Number of antisymmetric transitive binary relations on n unlabeled points.
6: A263859: Triangle read by rows: T(n,k) (n>=1, k>=0) is the number of posets with n elements and rank k (or depth k+1).
7: A316978: Number of factorizations of n into factors > 1 with no equivalent primes.
8: A319559: Number of non-isomorphic T_0 set systems of weight n.
9: A326939: Number of T_0 sets of subsets of {1..n} that cover all n vertices.
10: A326943: Number of T_0 sets of subsets of {1..n} that cover all n vertices and are closed under intersection.
...


What does the Taylor expansion of the $$e^(e^x-1)$$ function have to do with primes ?

sage: x = var('x') ; f(x) = e^(e^x - 1)
sage: L = [a*factorial(b) for a,b in taylor(f(x), x, 0, 20).coefficients()] ; L
[1, 1, 2, 5, 15, 52, 203, 877, 4140, 21147, 115975, 678570, 4213597,
27644437, 190899322, 1382958545, 10480142147, 82864869804, 682076806159,
5832742205057, 51724158235372]

sage: oeis(L)                                       # optional -- internet
0: A000110: Bell or exponential numbers: number of ways to partition a set of n labeled elements.
1: A292935: E.g.f.: exp(exp(-x) - 1).

sage: b = _[0]                                      # optional -- internet

sage: b.formulas()[0]                               # optional -- internet
'E.g.f.: exp(exp(x) - 1).'

sage: [i for i in b.comments() if 'prime' in i][-1]     # optional -- internet
'Number n is prime if mod(a(n)-2,n) = 0. -_Dmitry Kruchinin_, Feb 14 2012'

sage: [n for n in range(2, 20) if (b(n)-2) % n == 0]    # optional -- internet
[2, 3, 5, 7, 11, 13, 17, 19]


Todo

• in case of flood, suggest the user to install the off-line database instead.
• interface with the off-line database (or reimplement it).

## Classes and methods¶

class sage.databases.oeis.FancyTuple

Bases: tuple

This class inherits from tuple, it allows to nicely print tuples whose elements have a one line representation.

EXAMPLES:

sage: from sage.databases.oeis import FancyTuple
sage: t = FancyTuple(['zero', 'one', 'two', 'three', 4]) ; t
0: zero
1: one
2: two
3: three
4: 4

sage: t[2]
'two'

class sage.databases.oeis.OEIS

The On-Line Encyclopedia of Integer Sequences.

OEIS is a class representing the On-Line Encyclopedia of Integer Sequences. You can query it using its methods, but OEIS can also be called directly with three arguments:

• query - it can be:
• a string representing an OEIS ID (e.g. ‘A000045’).
• an integer representing an OEIS ID (e.g. 45).
• a list representing a sequence of integers.
• a string, representing a text search.
• max_results - (integer, default: 30) the maximum number of results to return, they are sorted according to their relevance. In any cases, the OEIS website will never provide more than 100 results.
• first_result - (integer, default: 0) allow to skip the first_result first results in the search, to go further. This is useful if you are looking for a sequence that may appear after the 100 first found sequences.

OUTPUT:

• if query is an integer or an OEIS ID (e.g. ‘A000045’), returns the associated OEIS sequence.
• if query is a string, returns a tuple of OEIS sequences whose description corresponds to the query. Those sequences can be used without the need to fetch the database again.
• if query is a list of integers, returns a tuple of OEIS sequences containing it as a subsequence. Those sequences can be used without the need to fetch the database again.

EXAMPLES:

sage: oeis
The On-Line Encyclopedia of Integer Sequences (https://oeis.org/)


A particular sequence can be called by its A-number or number:

sage: oeis('A000040')                           # optional -- internet
A000040: The prime numbers.

sage: oeis(45)                                  # optional -- internet
A000045: Fibonacci numbers: F(n) = F(n-1) + F(n-2) with F(0) = 0 and F(1) = 1.


The database can be searched by subsequence:

sage: search = oeis([1,2,3,5,8,13])                         # optional -- internet
sage: search = sorted(search, key=lambda x: x.id()); search # optional -- internet
[A000045: Fibonacci numbers: F(n) = F(n-1) + F(n-2) with F(0) = 0 and F(1) = 1.,
A027926: Triangular array T read by rows: T(n,0) = T(n,2n) = 1 for n >= 0; T(n,1) = 1 for n >= 1; T(n,k) = T(n-1,k-2) + T(n-1,k-1) for k = 2..2n-1, n >= 2.,
A290689: Number of transitive rooted trees with n nodes.]

sage: fibo = search[0]                         # optional -- internet

sage: fibo.name()                               # optional -- internet
'Fibonacci numbers: F(n) = F(n-1) + F(n-2) with F(0) = 0 and F(1) = 1.'

sage: print(fibo.first_terms())                 # optional -- internet
(0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597,
2584, 4181, 6765, 10946, 17711, 28657, 46368, 75025, 121393, 196418,
317811, 514229, 832040, 1346269, 2178309, 3524578, 5702887, 9227465,
14930352, 24157817, 39088169, 63245986, 102334155)

sage: fibo.cross_references()[0]                # optional -- internet
'A039834'

sage: fibo == oeis(45)                          # optional -- internet
True

sage: sfibo = oeis('A039834')                   # optional -- internet
sage: sfibo.first_terms()                       # optional -- internet
(1, 1, 0, 1, -1, 2, -3, 5, -8, 13, -21, 34, -55, 89, -144, 233,
-377, 610, -987, 1597, -2584, 4181, -6765, 10946, -17711, 28657,
-46368, 75025, -121393, 196418, -317811, 514229, -832040, 1346269,
-2178309, 3524578, -5702887, 9227465, -14930352, 24157817)

sage: tuple(abs(i) for i in sfibo.first_terms())[2:20] == fibo.first_terms()[:18]   # optional -- internet
True

sage: fibo.formulas()[4]                        # optional -- internet
'F(n) = F(n-1) + F(n-2) = -(-1)^n F(-n).'

sage: fibo.comments()[1]                        # optional -- internet
"F(n+2) = number of binary sequences of length n that have no
consecutive 0's."

sage: fibo.links()[0]                           # optional -- internet
'https://oeis.org/A000045/b000045.txt'


The database can be searched by description:

sage: sorted(oeis('prime gap factorization', max_results=4), key=lambda x: x.id()) # optional --internet
[A073485: Product of any number of consecutive primes; squarefree numbers with no gaps in their prime factorization.,
A073490: Number of prime gaps in factorization of n.,
A073491: Numbers having no prime gaps in their factorization.,
A073492: Numbers having at least one prime gap in their factorization.]


Warning

The following will fetch the OEIS database twice (once for searching the database, and once again for creating the sequence fibo):

sage: oeis([1,2,3,5,8,13])                  # optional -- internet
...

sage: fibo = oeis('A000045')                # optional -- internet


Do not do this, it is slow, it costs bandwidth and server resources ! Instead, do the following, to reuse the result of the search to create the sequence:

sage: sorted(oeis([1,2,3,5,8,13]), key=lambda x: x.id()) # optional -- internet
[A000045: Fibonacci numbers: F(n) = F(n-1) + F(n-2) with F(0) = 0 and F(1) = 1.,
A027926: Triangular array T read by rows: T(n,0) = T(n,2n) = 1 for n >= 0; T(n,1) = 1 for n >= 1; T(n,k) = T(n-1,k-2) + T(n-1,k-1) for k = 2..2n-1, n >= 2.,
A290689: Number of transitive rooted trees with n nodes.]

sage: fibo = _[0]                           # optional -- internet

browse()

Open the OEIS web page in a browser.

EXAMPLES:

sage: oeis.browse()                         # optional -- webbrowser

find_by_description(description, max_results=3, first_result=0)

Search for OEIS sequences corresponding to the description.

INPUT:

• description - (string) the description the searched sequences.
• max_results - (integer, default: 3) the maximum number of results we want. In any case, the on-line encyclopedia will not return more than 100 results.
• first_result - (integer, default: 0) allow to skip the first_result first results in the search, to go further. This is useful if you are looking for a sequence that may appear after the 100 first found sequences.

OUTPUT:

• a tuple (with fancy formatting) of at most max_results OEIS sequences. Those sequences can be used without the need to fetch the database again.

EXAMPLES:

sage: sorted(oeis.find_by_description('prime gap factorization'), key=lambda x: x.id()) # optional -- internet
[A073485: Product of any number of consecutive primes; squarefree numbers with no gaps in their prime factorization.,
A073490: Number of prime gaps in factorization of n.,
A073491: Numbers having no prime gaps in their factorization.]

sage: prime_gaps = _[1] ; prime_gaps        # optional -- internet
A073490: Number of prime gaps in factorization of n.

sage: oeis('beaver')                        # optional -- internet
0: A028444: Busy Beaver sequence, or Rado's sigma function: ...
1: A060843: Busy Beaver problem: a(n) = maximal number of steps ...
2: A131956: Busy Beaver variation: maximum number of steps for ...

sage: oeis('beaver', max_results=4, first_result=2)     # optional -- internet
0: A131956: Busy Beaver variation: maximum number of steps for ...
1: A141475: Number of Turing machines with n states following ...
2: A131957: Busy Beaver sigma variation: maximum number of 1's ...
3: A052200: Number of n-state, 2-symbol, d+ in {LEFT, RIGHT}, ...

find_by_id(ident)

INPUT:

• ident - a string representing the A-number of the sequence or an integer representing its number.

OUTPUT:

• The OEIS sequence whose A-number or number corresponds to ident.

EXAMPLES:

sage: oeis.find_by_id('A000040')            # optional -- internet
A000040: The prime numbers.

sage: oeis.find_by_id(40)                   # optional -- internet
A000040: The prime numbers.

find_by_subsequence(subsequence, max_results=3, first_result=0)

Search for OEIS sequences containing the given subsequence.

INPUT:

• subsequence - a list of integers.
• max_results - (integer, default: 3), the maximum of results requested.
• first_result - (integer, default: 0) allow to skip the first_result first results in the search, to go further. This is useful if you are looking for a sequence that may appear after the 100 first found sequences.

OUTPUT:

• a tuple (with fancy formatting) of at most max_results OEIS sequences. Those sequences can be used without the need to fetch the database again.

EXAMPLES:

sage: oeis.find_by_subsequence([2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377]) # optional -- internet
0: A000045: Fibonacci numbers: F(n) = F(n-1) + F(n-2) with F(0) = 0 and F(1) = 1.
1: A212804: Expansion of (1-x)/(1-x-x^2).
2: A177194: Fibonacci numbers whose decimal expansion does not contain any digit 0.

sage: fibo = _[0] ; fibo                    # optional -- internet
A000045: Fibonacci numbers: F(n) = F(n-1) + F(n-2) with F(0) = 0 and F(1) = 1.

class sage.databases.oeis.OEISSequence(entry)

The class of OEIS sequences.

This class implements OEIS sequences. Such sequences are produced from a string in the OEIS format. They are usually produced by calls to the On-Line Encyclopedia of Integer Sequences, represented by the class OEIS.

Note

Since some sequences do not start with index 0, there is a difference between calling and getting item, see __call__() for more details

sage: sfibo = oeis('A039834')               # optional -- internet
sage: sfibo.first_terms()[:10]              # optional -- internet
(1, 1, 0, 1, -1, 2, -3, 5, -8, 13)

sage: sfibo(-2)                             # optional -- internet
1
sage: sfibo(3)                              # optional -- internet
2
sage: sfibo.offsets()                       # optional -- internet
(-2, 6)

sage: sfibo[0]                              # optional -- internet
1
sage: sfibo[6]                              # optional -- internet
-3

__call__(k)

Return the element of the sequence self with index k.

INPUT:

• k - integer.

OUTPUT:

• integer.

Note

The first index of the sequence self is not necessarily zero, it depends on the first offset of self. If the sequence represents the decimal expansion of a real number, the index 0 corresponds to the digit right after the decimal point.

EXAMPLES:

sage: f = oeis(45)                          # optional -- internet
sage: f.first_terms()[:10]                  # optional -- internet
(0, 1, 1, 2, 3, 5, 8, 13, 21, 34)

sage: f(4)                                  # optional -- internet
3

sage: sfibo = oeis('A039834')               # optional -- internet
sage: sfibo.first_terms()[:10]              # optional -- internet
(1, 1, 0, 1, -1, 2, -3, 5, -8, 13)

sage: sfibo(-2)                             # optional -- internet
1
sage: sfibo(4)                              # optional -- internet
-3
sage: sfibo.offsets()                       # optional -- internet
(-2, 6)

author()

Returns the author of the sequence in the encyclopedia.

OUTPUT:

• string.

EXAMPLES:

sage: f = oeis(45) ; f                      # optional -- internet
A000045: Fibonacci numbers: F(n) = F(n-1) + F(n-2) with F(0) = 0 and F(1) = 1.

sage: f.author()                            # optional -- internet
'_N. J. A. Sloane_, 1964'

browse()

Open the OEIS web page associated to the sequence self in a browser.

EXAMPLES:

sage: f = oeis(45) ; f                      # optional -- internet webbrowser
A000045: Fibonacci numbers: F(n) = F(n-1) + F(n-2) with F(0) = 0 and F(1) = 1.

sage: f.browse()                            # optional -- internet webbrowser

comments()

Return a tuple of comments associated to the sequence self.

OUTPUT:

• tuple of strings (with fancy formatting).

EXAMPLES:

sage: f = oeis(45) ; f                      # optional -- internet
A000045: Fibonacci numbers: F(n) = F(n-1) + F(n-2) with F(0) = 0 and F(1) = 1.

sage: f.comments()[:3]                      # optional -- internet
0: Also sometimes called Lamé's sequence.
1: F(n+2) = number of binary sequences of length n that have no consecutive 0's.
2: F(n+2) = number of subsets of {1,2,...,n} that contain no consecutive integers.

cross_references(fetch=False)

Return a tuple of cross references associated to the sequence self.

INPUT:

• fetch - boolean (default: False).

OUTPUT:

• if fetch is False, return a list of OEIS IDs (strings).
• if fetch if True, return a tuple of OEIS sequences.

EXAMPLES:

sage: nbalanced = oeis("A005598") ; nbalanced   # optional -- internet
A005598: a(n) = 1 + Sum_{i=1..n} (n-i+1)*phi(i).

sage: nbalanced.cross_references()              # optional -- internet
('A049703', 'A049695', 'A103116', 'A000010')

sage: nbalanced.cross_references(fetch=True)    # optional -- internet
0: A049703: a(0) = 0; for n>0, a(n) = A005598(n)/2.
1: A049695: Array T read by diagonals; ...
2: A103116: a(n) = A005598(n) - 1.
3: A000010: Euler totient function phi(n): count numbers <= n and prime to n.

sage: phi = _[3]                                # optional -- internet

examples()

Return a tuple of examples associated to the sequence self.

OUTPUT:

• tuple of strings (with fancy formatting).

EXAMPLES:

sage: c = oeis(1203) ; c                    # optional -- internet
A001203: Simple continued fraction expansion of Pi.

sage: c.examples()                          # optional -- internet
0: Pi = 3.1415926535897932384...
1:    = 3 + 1/(7 + 1/(15 + 1/(1 + 1/(292 + ...))))
2:    = [a_0; a_1, a_2, a_3, ...] = [3; 7, 15, 1, 292, ...]

extensions_or_errors()

Return a tuple of extensions or errors associated to the sequence self.

OUTPUT:

• tuple of strings (with fancy formatting).

EXAMPLES:

sage: sfibo = oeis('A039834') ; sfibo       # optional -- internet
A039834: a(n+2) = -a(n+1) + a(n) (signed Fibonacci numbers) with a(-2) = a(-1) = 1; or Fibonacci numbers (A000045) extended to negative indices.

sage: sfibo.extensions_or_errors()[0]       # optional -- internet
'Signs corrected by _Len Smiley_ and _N. J. A. Sloane_'

first_terms(number=None)

INPUT:

• number - (integer or None, default: None) the number of terms returned (if less than the number of available terms). When set to None, returns all the known terms.

OUTPUT:

• tuple of integers.

EXAMPLES:

sage: f = oeis(45) ; f                      # optional -- internet
A000045: Fibonacci numbers: F(n) = F(n-1) + F(n-2) with F(0) = 0 and F(1) = 1.

sage: f.first_terms()[:10]                  # optional -- internet
(0, 1, 1, 2, 3, 5, 8, 13, 21, 34)


Handle dead sequences: see trac ticket #17330

sage: oeis(5000).first_terms(12)              # optional -- internet
doctest:warning
...
RuntimeWarning: This sequence is dead: "A005000: Erroneous version of A006505."
(1, 0, 0, 1, 1, 1, 11, 36, 92, 491, 2537)

formulas()

Return a tuple of formulas associated to the sequence self.

OUTPUT:

• tuple of strings (with fancy formatting).

EXAMPLES:

sage: f = oeis(45) ; f                      # optional -- internet
A000045: Fibonacci numbers: F(n) = F(n-1) + F(n-2) with F(0) = 0 and F(1) = 1.

sage: f.formulas()[2]                       # optional -- internet
'F(n) = ((1+sqrt(5))^n - (1-sqrt(5))^n)/(2^n*sqrt(5)).'

id(format='A')

The ID of the sequence self is the A-number that identifies self.

INPUT:

• format - (string, default: ‘A’).

OUTPUT:

• if format is set to ‘A’, returns a string of the form ‘A000123’.
• if format is set to ‘int’ returns an integer of the form 123.

EXAMPLES:

sage: f = oeis(45) ; f                      # optional -- internet
A000045: Fibonacci numbers: F(n) = F(n-1) + F(n-2) with F(0) = 0 and F(1) = 1.

sage: f.id()                                # optional -- internet
'A000045'

sage: f.id(format='int')                    # optional -- internet
45

is_finite()

Tells whether the sequence is finite.

Currently, OEIS only provides a keyword when the sequence is known to be finite. So, when this keyword is not there, we do not know whether it is infinite or not.

OUTPUT:

• Returns True when the sequence is known to be finite.
• Returns Unknown otherwise.

Todo

Ask OEIS for a keyword ensuring that a sequence is infinite.

EXAMPLES:

sage: s = oeis('A114288') ; s               # optional -- internet
A114288: Lexicographically earliest solution of any 9 X 9 sudoku, read by rows.

sage: s.is_finite()                         # optional -- internet
True

sage: f = oeis(45) ; f                      # optional -- internet
A000045: Fibonacci numbers: F(n) = F(n-1) + F(n-2) with F(0) = 0 and F(1) = 1.

sage: f.is_finite()                         # optional -- internet
Unknown

is_full()

Tells whether the sequence self is full, that is, if all its elements are listed in self.first_terms().

Currently, OEIS only provides a keyword when the sequence is known to be full. So, when this keyword is not there, we do not know whether some elements are missing or not.

OUTPUT:

• Returns True when the sequence is known to be full.
• Returns Unknown otherwise.

EXAMPLES:

sage: s = oeis('A114288') ; s               # optional -- internet
A114288: Lexicographically earliest solution of any 9 X 9 sudoku, read by rows.

sage: s.is_full()                           # optional -- internet
True

sage: f = oeis(45) ; f                      # optional -- internet
A000045: Fibonacci numbers: F(n) = F(n-1) + F(n-2) with F(0) = 0 and F(1) = 1.

sage: f.is_full()                           # optional -- internet
Unknown

keywords()

Return the keywords associated to the sequence self.

OUTPUT:

• tuple of strings.

EXAMPLES:

sage: f = oeis(53) ; f                      # optional -- internet
A000053: Local stops on New York City Broadway line (IRT #1) subway.

sage: f.keywords()                          # optional -- internet
('nonn', 'fini', 'full')


Return, display or browse links associated to the sequence self.

INPUT:

• browse - an integer, a list of integers, or the word ‘all’ (default: None) : which links to open in a web browser.
• format - string (default: ‘guess’) : how to display the links.

OUTPUT:

• tuple of strings (with fancy formatting):
• if format is url, returns a tuple of absolute links without description.
• if format is html, returns nothing but prints a tuple of clickable absolute links in their context.
• if format is guess, adapts the output to the context (command line or notebook).
• if format is raw, the links as they appear in the database, relative links are not made absolute.

EXAMPLES:

sage: f = oeis(45) ; f                      # optional -- internet
A000045: Fibonacci numbers: F(n) = F(n-1) + F(n-2) with F(0) = 0 and F(1) = 1.

sage: f.links(format='url')                             # optional -- internet
0: https://oeis.org/A000045/b000045.txt
1: ...
2: ...

sage: f.links(format='raw')                 # optional -- internet
0: N. J. A. Sloane, <a href="/A000045/b000045.txt">The first 2000 Fibonacci numbers: Table of n, F(n) for n = 0..2000</a>
1: ...
2: ...

name()

Return the name of the sequence self.

OUTPUT:

• string.

EXAMPLES:

sage: f = oeis(45) ; f                      # optional -- internet
A000045: Fibonacci numbers: F(n) = F(n-1) + F(n-2) with F(0) = 0 and F(1) = 1.

sage: f.name()                              # optional -- internet
'Fibonacci numbers: F(n) = F(n-1) + F(n-2) with F(0) = 0 and F(1) = 1.'

natural_object()

Return the natural object associated to the sequence self.

OUTPUT:

• If the sequence self corresponds to the digits of a real
number, returns the associated real number (as an element of RealLazyField()).
• If the sequence self corresponds to the convergents of a
continued fraction, returns the associated continued fraction.

Warning

This method forgets the fact that the returned sequence may not be complete.

Todo

• ask OEIS to add a keyword telling whether the sequence comes from a power series, e.g. for https://oeis.org/A000182
• discover other possible conversions.

EXAMPLES:

sage: g = oeis("A002852") ; g               # optional -- internet
A002852: Continued fraction for Euler's constant (or Euler-Mascheroni constant) gamma.

sage: x = g.natural_object() ; type(x)      # optional -- internet
<class 'sage.rings.continued_fraction.ContinuedFraction_periodic'>

sage: RDF(x) == RDF(euler_gamma)            # optional -- internet
True

sage: cfg = continued_fraction(euler_gamma)
sage: x[:90] == cfg[:90]                    # optional -- internet
True

sage: ee = oeis('A001113') ; ee             # optional -- internet
A001113: Decimal expansion of e.

sage: x = ee.natural_object() ; x           # optional -- internet
2.718281828459046?

sage: x.parent()                            # optional -- internet
Real Lazy Field

sage: x == RR(e)                            # optional -- internet
True

sage: av = oeis('A087778') ; av             # optional -- internet
A087778: Decimal expansion ... Avogadro...

sage: av.natural_object()                   # optional -- internet
6.022141000000000?e23

sage: fib = oeis('A000045') ; fib           # optional -- internet
A000045: Fibonacci numbers: F(n) = F(n-1) + F(n-2) with F(0) = 0 and F(1) = 1.

sage: x = fib.natural_object() ; x.universe()         # optional -- internet
Non negative integer semiring

sage: sfib = oeis('A039834') ; sfib         # optional -- internet
A039834: a(n+2) = -a(n+1) + a(n) (signed Fibonacci numbers) with a(-2) = a(-1) = 1; or Fibonacci numbers (A000045) extended to negative indices.

sage: x = sfib.natural_object() ; x.universe()    # optional -- internet
Integer Ring

offsets()

Return the offsets of the sequence self.

The first offset is the subscript of the first term in the sequence self. When, the sequence represents the decimal expansion of a real number, it corresponds to the number of digits of its integer part.

The second offset is the first term in the sequence self (starting from 1) whose absolute value is greater than 1. This is set to 1 if all the terms are 0 or +-1.

OUTPUT:

• tuple of two elements.

EXAMPLES:

sage: f = oeis(45) ; f                      # optional -- internet
A000045: Fibonacci numbers: F(n) = F(n-1) + F(n-2) with F(0) = 0 and F(1) = 1.

sage: f.offsets()                           # optional -- internet
(0, 4)

sage: f.first_terms()[:4]                   # optional -- internet
(0, 1, 1, 2)

old_IDs()

Returns the IDs of the sequence self corresponding to ancestors of OEIS.

OUTPUT:

• a tuple of at most two strings. When the string starts with $$M$$, it corresponds to the ID of “The Encyclopedia of Integer Sequences” of 1995. When the string starts with $$N$$, it corresponds to the ID of the “Handbook of Integer Sequences” of 1973.

EXAMPLES:

sage: f = oeis(45) ; f                      # optional -- internet
A000045: Fibonacci numbers: F(n) = F(n-1) + F(n-2) with F(0) = 0 and F(1) = 1.

sage: f.old_IDs()                           # optional -- internet
('M0692', 'N0256')

programs(language='other')

Returns programs implementing the sequence self in the given language.

INPUT:

• language - string (default: ‘other’) - the language of the program. Current values are: ‘maple’, ‘mathematica’ and ‘other’.

OUTPUT:

• tuple of strings (with fancy formatting).

Todo

ask OEIS to add a “Sage program” field in the database ;)

EXAMPLES:

sage: ee = oeis('A001113') ; ee             # optional -- internet
A001113: Decimal expansion of e.

sage: ee.programs()[0]                      # optional -- internet
'(PARI) default(realprecision, 50080); x=exp(1); for (n=1, 50000, d=floor(x); x=(x-d)*10; write("b001113.txt", n, " ", d)); \\\\ _Harry J. Smith_, Apr 15 2009'

raw_entry()

Return the raw entry of the sequence self, in the OEIS format.

OUTPUT:

• string.

EXAMPLES:

sage: f = oeis(45) ; f                      # optional -- internet
A000045: Fibonacci numbers: F(n) = F(n-1) + F(n-2) with F(0) = 0 and F(1) = 1.

sage: print(f.raw_entry())                  # optional -- internet
%I A000045 M0692 N0256
%S A000045 0,1,1,2,3,5,8,13,21,34,55,89,144,...
%T A000045 10946,17711,28657,46368,...
...

references()

Return a tuple of references associated to the sequence self.

OUTPUT:

• tuple of strings (with fancy formatting).

EXAMPLES:

sage: w = oeis(7540) ; w                    # optional -- internet
A007540: Wilson primes: primes p such that (p-1)! == -1 (mod p^2).

sage: w.references()                        # optional -- internet
0: A. H. Beiler, Recreations in the Theory of Numbers, Dover, NY, 1964, p. 52.
1: C. Clawson, Mathematical Mysteries, Plenum Press, 1996, p. 180.
2: R. Crandall and C. Pomerance, Prime Numbers: A Computational Perspective, Springer, NY, 2001; see p. 29.
3: G. H. Hardy and E. M. Wright, An Introduction to the Theory of Numbers, 5th ed., Oxford Univ. Press, 1979, th. 80.
...

sage: _[0]                                  # optional -- internet
'A. H. Beiler, Recreations in the Theory of Numbers, Dover, NY, 1964, p. 52.'

show()

Display most available informations about the sequence self.

EXAMPLES:

sage: s = oeis(12345)                       # optional -- internet
sage: s.show()                              # optional -- internet
ID
A012345

NAME
Coefficients in the expansion sinh(arcsin(x)*arcsin(x)) = 2*x^2/2!+8*x^4/4!+248*x^6/6!+11328*x^8/8!+...

FIRST TERMS
(2, 8, 248, 11328, 849312, 94857600, 14819214720, 3091936512000, 831657655349760, 280473756197529600, 115967597965430077440, 57712257892456911912960, 34039765801079493369569280)

0: https://oeis.org/A012345/b012345.txt

FORMULAS
...
OFFSETS
(0, 1)

URL
https://oeis.org/A012345

AUTHOR
Patrick Demichel (patrick.demichel(AT)hp.com)

url()

Return the URL of the page associated to the sequence self.

OUTPUT:

• string.

EXAMPLES:

sage: f = oeis(45) ; f                      # optional -- internet
A000045: Fibonacci numbers: F(n) = F(n-1) + F(n-2) with F(0) = 0 and F(1) = 1.

sage: f.url()                               # optional -- internet
'https://oeis.org/A000045'

sage.databases.oeis.to_tuple(string)