On 4/12/2012 6:34 PM, Ethan Furman wrote:
Okay, so I haven't asked a stupid question in a long time and I'm
suffering withdrawal symptoms... ;)

5 % 0 = ?

It seems to me that the answer should be 5: no matter how many times we
add 0 to itself, the remainder of the intermediate step will be 5.

Is there a postulate or by definition answer as to why this should not
be so?

0 <= M % N < N
no solution for N == 0

m // n, m % n = divmod(m, n), which is to say, divmod is the fundamental recursively defined operation and // and % are each one of the components with the other ignored. m % n = divmod(m, n)[1]
and divmod is not defined for n == 0

def divmod(m, n):  # m, n not negative
  q, r = 0, m
  while m >= n:
    q, r = q+1, r-n
  return q, r

Of course, given m, n in base n representation, the way you learned to do it in school is faster. In binary, it is even easier because each digit is 0 or 1 so no guessing needed as with base 10.

--
Terry Jan Reedy

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to