rem: *n = (*n) / (unsigned long long)base;  return res;
add: return result;
context: do_div(unsigned long long *n, unsigned base) { 	unsigned long long res;	res = (*n) %  (unsigned long long)base;	*n = (*n) / (unsigned long long)base;	return res;}