Пока 'переменная d не станет делиться без остатка на первое введенное нами число' И 'переменная d не станет делиться без остатка на второе введенное нами число', ТО выполняем цикл.
Нет, утверждение неверное.
Цикл while работает пока условие истинно. В вашем случае либо истино d % a != 0, либо истинно d % b != 0
В ruby есть until, который работает так как вы описали