Разве при умножении небольших чисел тип long не сокращается до int? И в данном случае приведение к long не требуется,
return (long) ЗДЕСЬ КОДl; //Приведение к long не требуется?