Мой ответ на этот вопрос был этой функцией:
inline bool divisible15(unsigned int x) 
{
    //286331153 = (2^32 - 1) / 15
    //4008636143 = (2^32) - 286331153
    return x * 4008636143 <= 286331153;
}
Он отлично работал на моей машине с компилятором VS2008, однако здесь он вообще не работает.
Есть ли у кого-то идея, почему у меня разные результаты для разных компиляторов? unsigned переполнение не является undefined.
Важное замечание: после некоторого теста было подтверждено, что он быстрее, чем оставление деления на 15. (Однако не для всех компиляторов)