Как минимально поделить число на 2 и 3 столько раз сколько будет нужно?
21ken, добрый день!
Есть хорошая книга "Грокаем алгоритмы", в неё рассматривается похожая задача про Рюкзак.
Если комнат бесконечное количество)
Делим кол-во людей на вместительность самой большой комнаты.
Например 8 людей / 3 мест. = 2,  остаток 2 чел
Остаток делим на 2 местные и повторяем пока не вселим всех.

На вскидку в псевдокоде 

humans = 8
capacity = 3 #вместительность самой большой комнаты

while(humans>0){
    ok = Math.trunc(humans/capacity) #вселили количество
    humans -= ok * capacity #осталось вселить
    capacity -= 1 #уменьшаем вместительность комнат и повторяем

    if(ok==0){
       humans = 0 #если все вошли в одну комнату без остатка например 2 в 3 мест.
    }

}