I am trying to write the Euclidean algorithm in the following way:

$A = \lfloor A \div B \rfloor \times B + (\text{remainder of}) \: A \div B $

Now is there any symbol I can use to say "remainder of A $\div$ B"? I know that in the C programming language there is the operator % for modulus; is that a valid symbol in maths? Can I write A % B? Or is there some other way?

  • 4
    $\begingroup$ You can always do $A - (\lfloor A \div B\rfloor \times B)$ $\endgroup$ – Christopher Liu Dec 21 '13 at 17:00
  • 8
    $\begingroup$ You can write the remainder as $\ A{\rm\ mod\ }B.$ $\endgroup$ – Bill Dubuque Dec 21 '13 at 17:01
  • 5
    $\begingroup$ "mod" is pretty standard. $\endgroup$ – vadim123 Dec 21 '13 at 17:03
  • 2
    $\begingroup$ @ApprenticeHacker Ok, I will post an answer. $\endgroup$ – Bill Dubuque Dec 21 '13 at 17:10
  • 1
    $\begingroup$ Wasn't sure if I should write this as an answer or not. There is a problem in that the mod operation in programming is defined in terms of the division algorithm being used. Specifically there is floored, truncated, or Euclidean division. And mod provides different results for each choice. Writing the Euclidean algorithm using the modulo operator seems then circular to me. In other words: you can use the euclidean algorithm to define mod, but not the other way around. $\endgroup$ – Tim Seguine Jan 10 '14 at 11:59

Per request, I post my comment(s) as an answer, and add some further remarks.

The notation $\rm\ a\ mod\ b\ $ denotes the remainder when dividing $\rm\,a\,$ by $\rm\,b\,$ using the division algorithm. The same notation is used in other domains that have an analogous (Euclidean) Division Algorithm, e.g. polynomials with coefficients over a field.

Also "mod" is also as a ternary relation (vs. binary operation) when dealing with congruence relations, i.e. $\rm\ a\equiv b\pmod{\! n}\iff n\mid a-b\,$ (an equivalence relation for a fixed modulus $\,n).$

The operational use of mod is often more convenient in computational contexts, whereas the relational use often yields more flexibility in theoretical contexts. The difference amounts to whether it is more convenient to work with general equivalence classes, or canonical / normal representatives ("reps") thereof. For example, it would be quite cumbersome to state the laws of fraction arithmetic if one required all fractions to be in normal (reduced) form, i.e. in lowest terms. Instead, it proves more convenient to have the flexibility to work with arbitrary equivalent fractions. For example, this allows us to state the fraction addition rule in very simple form by first choosing convenient reps having a common denominator.

Analogously, in modular arithmetic the remainder $\,a\ {\rm mod}\ m\,$ may not be the most convenient choice of representative of the equivalence class $\,[a]_m =\, a + m\,\Bbb Z.\,$ For example, the formula for casting out elevens exploits that $\ {\rm mod}\ 11\!:\ 10\equiv -1\,\Rightarrow\,10^{\large n}\equiv (-1)^{\large n}\equiv \pm1 .\,$ which involves choosing a rep of least magnitude $\,\color{#c00}{\bf -1}\,$ vs. $\,\color{#0a0}{10}\in [10]_{11}\! = \{\ldots,\, -23,-12,\color{#c00}{\bf -1},\color{#0a0}{10},21,\,\ldots\}.\,$ Hence, analogous to fraction addition, we chose a rep $\,-1\,$ whose powers are easier to compute. Using least magnitude reps often simplifies other computations too, e.g. the Euclidean algorithm. Often such use of congruence classes (vs. canonical reps) provides much greater flexibility, leading to great simplifications.

The use of the percent sign to denote mod (as in the C programming language) has not percolated to be standard in the mathematical community as far as I can tell. I recall many questions on sci.math regarding the meaning of $\rm\, a\,\%\, b.\, $ As such, if you use this notation in a mathematical forum then I recommend that you specify its meaning. This would not be necessary for "mod", since that notation is ubiquitous in mathematics. Be aware, however, that some mathematicians look down on the operational use of mod in the case when it would be more natural to use the congruence form. Apparently the mathematical Gods do too, since doing so can make some proofs quite more difficult (much more so than the simple fractional example mentioned above).

  • 1
    $\begingroup$ Needed to add, if you wish to use a\%b in LaTeX to denote the remainder, you should write a \mathbin{\%} b or better define it by \renewcommand*{\bmod}{\mathbin{\%}} and then it's a \bmod b. $\endgroup$ – yo' Dec 21 '13 at 22:00
  • 2
    $\begingroup$ The percent operator in 'C'-like languages is a remainder operator not a modulo operator. Why Kernighan and Ritchie made this decision is lost in the mists of time, but it is unfortunate. Here is an article on the difference by one of the world's C# experts: blogs.msdn.com/b/ericlippert/archive/2011/12/05/… $\endgroup$ – Pieter Geerkens Dec 22 '13 at 1:13
  • $\begingroup$ @Pieter It is not clear to me what you mean by a "remainder operator vs. modulo operator". Above I distinguish between mod/remainder as an operation that yields a particular (canonical) choice of an equivalence class, vs. the use of mod as a ternary relation $a\equiv b \pmod R \iff (a,b)\in R.\,$ I do not address any choices having to do with implementation of the remainder operations (or the associated division algorithm). $\endgroup$ – Bill Dubuque Dec 22 '13 at 16:50
  • $\begingroup$ @BillDubuque: The % operator in C-like languages does not respect the equivalence classes of a finite ring over the integers under normal multiplication and addition when one or more operands is negative. Forgive me if my terminology is not spot on - it has been almost 4 decades since I last did the algebra rigorously. $\endgroup$ – Pieter Geerkens Dec 22 '13 at 16:54
  • 1
    $\begingroup$ @Sarah Mod denotes the operation. I don't recall every seeing "mod" used a a synonym for "remainder". One should not use "modulus" for the remainder since that denotes the dividend, i.e. for congruences mod $n$ it is $n$ that is the modulus (following Gauss), and this is consistent with more general usage in modules, where the modulus denotes the generator of a principal module, here $(n) = n\Bbb Z$. $\endgroup$ – Bill Dubuque Feb 10 '16 at 1:05

It's fine to use $A \% B$ for the remainder of $A$ when divided by $B$, provided that you explain what you are using the percent symbol to mean.

It is fairly common in mathematics to need to introduce a symbol to conveniently express something you're going to use: it is infeasible and undesirable to have standardized notation for absolutely everything.

And since this operator is used infrequently in mathematics, there hasn't been standardized notation for it. $A \bmod B$ is probably the most common notation I've seen for it, although it's mildly abusive and possibly a little confusing, since the $\bmod$ symbol is used in other ways too.

Do not just invent notation without explaining your meaning, though. Doing that is not accepted. Also, you should clearly point out how your normalizing the remainder: e.g. that you are insisting that it is an integer in the interval $[0, |B| - 1]$.

  • $\begingroup$ +1. How would I go about explaining the meaning of my notation though? Just a statement in english? Something like "Where A % B denotes the remainder when A is divided by B" ? $\endgroup$ – ApprenticeHacker Dec 21 '13 at 17:25
  • 3
    $\begingroup$ @ApprenticeHacker: I think that should be fine in most contexts -- assuming you say how you're normalizing the remainder. There are actual several choices: e.g. you might pick the representative with smallest absolute value: $5\% 3 = -1$. Or you might pick the remainder to have the same sign as the as the first argument but still smaller in magnitude than the second: $-5 \% 3 = -2$. Or you might choose it to have the same sign as the second argument: $-5 \% 3 = 1$ but $5 \% -3 = -1$. $\endgroup$ – user14972 Dec 21 '13 at 17:27
  • $\begingroup$ +1, in particular for it's undesirable. I completely agree. $\endgroup$ – egreg Dec 21 '13 at 18:09
  • $\begingroup$ +1 for noting that % is a remainder operator in C-like languages, and not a modulo operator. $\endgroup$ – Pieter Geerkens Dec 22 '13 at 1:14

You can write the remainder, mathematically, as $A\; \text{mod}\; B$, which is fairly well-understood to mean the remainder of $A \div B$.

ADDED: In programming, you are correct, $A\,\%\,B$, in many languages, is the operation that returns the remainder when dividing $A$ by $B$. Within mathematics, % is not an accepted notation for this purpose.

  • $\begingroup$ +1 thanks for the appendix mentioning the programming part. $\endgroup$ – ApprenticeHacker Dec 21 '13 at 17:13
  • $\begingroup$ You're welcome. I saw I hadn't, at first, answered all of your question! ;-) $\endgroup$ – Namaste Dec 21 '13 at 17:14
  • $\begingroup$ I think it may be a little dangerous to believe that "$A\mod B$" is understood to mean the remainder (not to mention the question about the normalization of the remainder. Better to explain it in the set-up, to avoid misunderstandings. $\endgroup$ – paul garrett Dec 21 '13 at 22:12

At some time, the use of "mod" in mathematics was restricted to congruences:

$$a\equiv b \pmod n \iff n \, | \, a - b$$

Thus you have always, when $r$ is the remainder of the division $a/b$:

$$a \equiv r \pmod b$$

However, the notation "$a \;\mathrm{mod}\; b$" is now quite widespread, probably with the help of notations from programming languages (it's written exactly this way in Pascal, for instance). It has also been used in very well known computer science books, like "Concrete Mathematics", where it proved to be very useful in mathematical formulas as well.

  • $\begingroup$ I think formally you select a canonical element from each congruence class and the mod operation maps an element to the canonical element of its congruence class. For some domains this might require the axiom of choice. $\endgroup$ – Tim Seguine Dec 21 '13 at 20:19
  • $\begingroup$ @Tim: Unfortunately, in many computer languages the operator that's commonly referred to as the "mod" operator [often denoted as %] does not each equivalence class to a single canonical element, but will map all but one of the classes to two elements each. For example, in current dialects of C, C++, C#, and Java, even though 4≡1 (mod 3), and -5≡1 mod 3, 4%3 will yield 1 and (-5) mod 3 will yield -2. $\endgroup$ – supercat Dec 22 '13 at 5:11
  • $\begingroup$ @supercat yeah, I am actually aware of that. And I think most often when mathematicians speak of the operation they talk about the canonical projection, and reserve modulo for referring to the equivalence relation. $\endgroup$ – Tim Seguine Dec 22 '13 at 12:32

One can also use the "symmetrical" notation $$ A = \left\lfloor {A/B} \right\rfloor B + \left\{ {A/B} \right\}B $$ where $\left\{ x \right\} = x - \left\lfloor x \right\rfloor $ denotes the fractional part, as adopted in the book Concrete Mathematics, but unfortunately this is not a "standard" notation as well.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.