long division — standard division algorithm