Bernoulli numbers

From Fōrmulæ wiki
Jump to: navigation, search

This page is the answer to the task Bernoulli numbers in the Rosetta Code.

Description (from Rosetta Code)

Bernoulli numbers are used in some series expansions of several functions (trigonometric, hyperbolic, gamma, etc.), and are extremely important in number theory and analysis.

Note that there are two definitions of Bernoulli numbers; this task will be using the modern usage (as per The National Institute of Standards and Technology convention).

The nth Bernoulli number is expressed as Bn.


  • Show the Bernoulli numbers B0 through B60.
  • Suppress the output of values which are equal to zero. (Other than B1, all odd Bernoulli numbers have a value of zero.)
  • Express the Bernoulli numbers as fractions (most are improper fractions).
  • The fractions should be reduced.
  • Index each number in some way so that it can be discerned which Bernoulli number is being displayed.
  • Align the solidi (/) if used (extra credit).

An algorithm

The Akiyama–Tanigawa algorithm for the "second Bernoulli numbers" as taken from wikipedia is as follows:

 for m from 0 by 1 to n do
    A[m] ← 1/(m+1)
    for j from m by -1 to 1 do
      A[j-1] ← j×(A[j-1] - A[j])
 return A[0] (which is Bn)

See also



Test case