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