Плохо тестируешь. Неправильно работает на a = 16807 и b = 282475249