void div(unsigned int a, unsigned int b, unsigned int *q, unsigned int *r) { *q = 0; *r = a; while (b >= *r) { assert( *q * b + *r == a); *r -=b; *q += 1; } }