Вот вроде подойдет на все 100%...
// число
var n = 22;
// число-делитель, групп которого должно быть макс количество
var x = 3;
// другое число-делитель
var y = 4;
// -количество групп
var nX = 0, nY = 0;
if (n > y) {
var k = Math.floor(y / x);
k += ((y % x) > 0) ? 1 : 0;
nX = Math.floor(n / x);
nY = n % x;
if (nY < y ) {
var val = Math.floor((nY + x * (k - 1)) / y);
nX -= k - val;
nX = (nX < 0) ? 0 : nX;
} else {
nY = Math.floor(nY / y);
};
}
alert(nX + '*' + x + '+' + nY + '*' + y);