Javascript. mod and div functions

// modulo
var mod = function (a, b) {
    return a % b;
}

// integer division
var div = function (a, b) {
    return (a - a % b) / b;
};


В книге Александра Шеня "Программирование: теоремы и задачи" приведен пример вычисления частного и остатка без использования данных функций

/*
* Вычисление частного q и остатка r при делении натурального (целого неотрицательного)
* числа a на целое положительное число d без использования операций mod и div.
*/
var a = 7, d = 3;

// a >= 0; d > 0
var r = a, q = 0;
// инвариант: a = q * d + r, 0 <= r
while (!(r < d)) {
    // r >= d
    r = r - d; // r >= 0
    q = q + 1;
}

console.log('r = ' + mod(a, d) + ', q = ' + div(a, d)); // r = 1, q = 2
console.log('r = ' + r + ', q = ' + q); // r = 1, q = 2