Для небольшого проекта (задача 10 Project Euler) я попытался суммировать все простые числа ниже 2 миллионов. Поэтому я использовал метод грубой силы, перебрал от 0 до 2 000 000 и проверил, простое ли число. Если это так, я добавил его к сумме:
private int sum = 0;
private void calculate() {
for (int i = 0; i < 2000000; i++) {
if (i.isPrime()) {
sum = sum + i;
}
}
sysout(sum)
}
Результат этого расчета 1179908154, но это неверно. Поэтому я изменил int на BigInteger и теперь я получаю правильную сумму 142913828922. Очевидно, диапазон int был переполнен. Но почему Java не может сказать мне это? (например, исключением)