# Regular number

**Regular numbers** are numbers that evenly divide powers of 60 (or powers of 30). As an example, 60^{2} = 3600 = 48 × 75, so both 48 and 75 are divisors of a power of 60. Thus, they are *regular numbers*. Equivalently, they are the numbers whose only prime divisors are 2, 3, and 5.

The numbers that evenly divide the powers of 60 arise in several areas of mathematics and its applications, and have different names coming from these different areas of study.

- In number theory, these numbers are called
**5-smooth**, because they can be characterized as having only 2, 3, or 5 as prime factors. This is a specific case of the more general*k*-smooth numbers, i.e., a set of numbers that have no prime factor greater than*k*. - In the study of Babylonian mathematics, the divisors of powers of 60 are called
**regular numbers**or**regular sexagesimal numbers**, and are of great importance due to the sexagesimal number system used by the Babylonians. - In music theory, regular numbers occur in the ratios of tones in five-limit just intonation.
- In computer science, regular numbers are often called
**Hamming numbers**, after Richard Hamming, who proposed the problem of finding computer algorithms for generating these numbers in order.

## Number theory

Formally, a regular number is an integer of the form 2^{i}·3^{j}·5^{k}, for nonnegative integers *i*, *j*, and *k*. Such a number is a divisor of . The regular numbers are also called 5-smooth, indicating that their greatest prime factor is at most 5.

The first few regular numbers are

- 1, 2, 3, 4, 5, 6, 8, 9, 10, 12, 15, 16, 18, 20, 24, 25, 27, 30, 32, 36, 40, 45, 48, 50, 54, 60, ... (sequence A051037 in OEIS).

Several other sequences at OEIS have definitions involving 5-smooth numbers.^{[2]}

Although the regular numbers appear dense within the range from 1 to 60, they are quite sparse among the larger integers. A regular number *n* = 2^{i}·3^{j}·5^{k} is less than or equal to *N* if and only if the point (*i*,*j*,*k*) belongs to the tetrahedron bounded by the coordinate planes and the plane

as can be seen by taking logarithms of both sides of the inequality 2^{i}·3^{j}·5^{k} ≤ *N*.
Therefore, the number of regular numbers that are at most *N* can be estimated as the volume of this tetrahedron, which is

Even more precisely, using big O notation, the number of regular numbers up to *N* is

and it has been conjectured that the error term of this approximation is actually .^{[3]}
A similar formula for the number of 3-smooth numbers up to *N* is given by Srinivasa Ramanujan in his first letter to G. H. Hardy.^{[4]}

## Babylonian mathematics

In the Babylonian sexagesimal notation, the reciprocal of a regular number has a finite representation, thus being easy to divide by. Specifically, if *n* divides 60^{k}, then the sexagesimal representation of 1/*n* is just that for 60^{k}/*n*, shifted by some number of places.

For instance, suppose we wish to divide by the regular number 54 = 2^{1}3^{3}. 54 is a divisor of 60^{3}, and 60^{3}/54 = 4000, so dividing by 54 in sexagesimal can be accomplished by multiplying by 4000 and shifting three places. In sexagesimal 4000 = 1×3600 + 6×60 + 40×1, or (as listed by Joyce) 1:6:40. Thus, 1/54, in sexagesimal, is 1/60 + 6/60^{2} + 40/60^{3}, also denoted 1:6:40 as Babylonian notational conventions did not specify the power of the starting digit. Conversely 1/4000 = 54/60^{3}, so division by 1:6:40 = 4000 can be accomplished by instead multiplying by 54 and shifting three sexagesimal places.

The Babylonians used tables of reciprocals of regular numbers, some of which still survive (Sachs, 1947). These tables existed relatively unchanged throughout Babylonian times.^{[5]}

Although the primary reason for preferring regular numbers to other numbers involves the finiteness of their reciprocals, some Babylonian calculations other than reciprocals also involved regular numbers. For instance, tables of regular squares have been found^{[5]} and the broken cuneiform tablet Plimpton 322 has been interpreted by Neugebauer as listing Pythagorean triples generated by *p*, *q* both regular and less than 60.^{[6]}

## Music theory

In music theory, the just intonation of the diatonic scale involves regular numbers: the pitches in a single octave of this scale have frequencies proportional to the numbers in the sequence 24, 27, 30, 32, 36, 40, 45, 48 of nearly consecutive regular numbers. Thus, for an instrument with this tuning, all pitches are regular-number harmonics of a single fundamental frequency. This scale is called a 5-limit tuning, meaning that the interval between any two pitches can be described as a product 2^{i}3^{j}5^{k} of powers of the prime numbers up to 5, or equivalently as a ratio of regular numbers.

5-limit musical scales other than the familiar diatonic scale of Western music have also been used, both in traditional musics of other cultures and in modern experimental music: Template:Harvtxt list 31 different 5-limit scales, drawn from a larger database of musical scales. Each of these 31 scales shares with diatonic just intonation the property that all intervals are ratios of regular numbers. Euler's tonnetz provides a convenient graphical representation of the pitches in any 5-limit tuning, by factoring out the octave relationships (powers of two) so that the remaining values form a planar grid. Some music theorists have stated more generally that regular numbers are fundamental to tonal music itself, and that pitch ratios based on primes larger than 5 cannot be consonant.^{[7]} However the equal temperament of modern pianos is not a 5-limit tuning, and some modern composers have experimented with tunings based on primes larger than five.

In connection with the application of regular numbers to music theory, it is of interest to find pairs of regular numbers that differ by one. There are exactly ten such pairs (*x*, *x*+1)^{[8]} and each such pair defines a superparticular ratio (*x* + 1)/*x* that is meaningful as a musical interval. These intervals are 2/1 (the octave), 3/2 (the perfect fifth), 4/3 (the perfect fourth), 5/4 (the just major third), 6/5 (the just minor third), 9/8 (the just major tone), 10/9 (the just minor tone), 16/15 (the just diatonic semitone), 25/24 (the just chromatic semitone), and 81/80 (the syntonic comma).

## Algorithms

Algorithms for calculating the regular numbers in ascending order were popularized by Edsger Dijkstra. Template:Harvs attributes to Hamming the problem of building the infinite ascending sequence of all 5-smooth numbers; this problem is now known as **Hamming's problem**, and the numbers so generated are also called the **Hamming numbers**. Dijkstra's ideas to compute these numbers are the following:

- The sequence of Hamming numbers begins with the number 1.

- The remaining values in the sequence are of the form 2
*h*, 3*h*, and 5*h*, where*h*is any Hamming number.

- Therefore, the sequence
*H*may be generated by outputting the value 1, and then merging the sequences 2*H*, 3*H*, and 5*H*.

This algorithm is often used to demonstrate the power of a lazy functional programming language, because (implicitly) concurrent efficient implementations, using a constant number of arithmetic operations per generated value, are easily constructed as described above. Similarly efficient strict functional or imperative sequential implementations are also possible whereas explicitly concurrent generative solutions might be non-trivial.^{[9]}

In the Python programming language, lazy functional code for generating regular numbers is used as one of the built-in tests for correctness of the language's implementation.^{[10]}

A related problem, discussed by Template:Harvtxt, is to list all *k*-digit sexagesimal numbers in ascending order, as was done (for *k* = 6) by Inakibit-Anu, the Seleucid-era scribe of tablet AO6456. In algorithmic terms, this is equivalent to generating (in order) the subsequence of the infinite sequence of regular numbers, ranging from 60^{k} to 60^{k + 1}.
See Template:Harvtxt for an early description of computer code that generates these numbers out of order and then sorts them; Knuth describes an ad-hoc algorithm, which he attributes to Template:Harvtxt, for generating the six-digit numbers more quickly but that does not generalize in a straightforward way to larger values of *k*. Template:Harvtxt describes an algorithm for computing tables of this type in linear time for arbitrary values of *k*.

## Other applications

Template:Harvtxt show that, when *n* is a regular number and is divisible by 8, the generating function of an *n*-dimensional extremal even unimodular lattice is an *n*th power of a polynomial.

As with other classes of smooth numbers, regular numbers are important as problem sizes in computer programs for performing the fast Fourier transform, a technique for analyzing the dominant frequencies of signals in time-varying data. For instance, the method of Template:Harvtxt requires that the transform length be a regular number.

Book VIII of Plato's Republic involves an allegory of marriage centered around the highly regular number 60^{4} = 12,960,000 and its divisors. Later scholars have invoked both Babylonian mathematics and music theory in an attempt to explain this passage.^{[11]}

## Notes

- ↑ Inspired by similar diagrams by Erkki Kurenniemi in "Chords, scales, and divisor lattices".
- ↑ OEIS search for sequences involving 5-smoothness.
- ↑ Template:SloanesRef
- ↑ {{#invoke:citation/CS1|citation |CitationClass=citation }}.
- ↑
^{5.0}^{5.1}Template:Harvtxt. - ↑ See Template:Harvtxt for a popular treatment of this interpretation. Plimpton 322 has other interpretations, for which see its article, but all involve regular numbers.
- ↑ Template:Harvtxt, for instance, states that "within any piece of tonal music" all intervals must be ratios of regular numbers, echoing similar statements by much earlier writers such as Template:Harvtxt. In the modern music theory literature this assertion is often attributed to Template:Harvtxt, who used a graphical arrangement closely related to the tonnetz to organize 5-limit pitches.
- ↑ Template:Harvtxt note that this follows from Størmer's theorem Template:Harv, and provide a proof for this case; see also Template:Harvtxt.
- ↑ See, e.g., Template:Harvtxt or Template:Harvtxt.
- ↑ Function m235 in test_generators.py.
- ↑ Template:Harvtxt; Template:Harvtxt.

## References

- {{#invoke:citation/CS1|citation

|CitationClass=citation }}.

- {{#invoke:citation/CS1|citation

|CitationClass=citation }}.

- {{#invoke:citation/CS1|citation

|CitationClass=citation }}.

- {{#invoke:citation/CS1|citation

|CitationClass=citation }}.

- {{#invoke:citation/CS1|citation

|CitationClass=citation }}.

- {{#invoke:citation/CS1|citation

|CitationClass=citation }}

- {{#invoke:citation/CS1|citation

|CitationClass=citation }}.

- {{#invoke:citation/CS1|citation

|CitationClass=citation }}.

- {{#invoke:citation/CS1|citation

|CitationClass=citation }}.

- {{#invoke:citation/CS1|citation

|CitationClass=citation }}.

- {{#invoke:citation/CS1|citation

|CitationClass=citation }}.

- {{#invoke:citation/CS1|citation

|CitationClass=citation }}.

- Template:Cite arxiv.
- {{#invoke:citation/CS1|citation

|CitationClass=citation }}.

- {{#invoke:citation/CS1|citation

|CitationClass=citation
}}. Errata in *CACM* **19**(2), 1976. Reprinted with a brief addendum in *Selected Papers on Computer Science*, CSLI Lecture Notes 59, Cambridge Univ. Press, 1996, pp. 185–203.

- {{#invoke:citation/CS1|citation

|CitationClass=citation }}.

- {{#invoke:citation/CS1|citation

|CitationClass=citation }}.

- {{#invoke:citation/CS1|citation

|CitationClass=citation }}.

- {{#invoke:citation/CS1|citation

|CitationClass=citation }}.

- {{#invoke:citation/CS1|citation

|CitationClass=citation }}.

- {{#invoke:citation/CS1|citation

|CitationClass=citation }}.

- {{#invoke:citation/CS1|citation

|CitationClass=citation }}. Template:Refend

## External links

- Table of reciprocals of regular numbers up to 3600 from the web site of Professor David E. Joyce, Clark University.
- RosettaCode Generation of Hamming_numbers in ~ 50 programming languages

Template:Divisor classes
Template:Classes of natural numbers