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