У меня был этот странный опыт с проблемой номер 10 на Project Euler (отличный сайт, кстати). Задача состояла в том, чтобы вычислить сумму всех простых чисел ниже двух миллионов.
Я использовал int для суммы, и мой алгоритм дал ответ, но когда я вставил его, чтобы проверить ответ, это было неправильно.
Оказалось, что результат слишком велик, чтобы вписаться в int, но не может ли это вызвать ошибку переполнения или что-то еще? Вместо этого он просто вернул значение, далекое от реального ответа.
Когда я сменил тип на длинный, все было hunky dory.