http://www.diofant.ru/problem/1138/
Converted to JavaScript