Project Euler # 3 вне целочисленного диапазона java [duplicate]
На этот вопрос уже есть ответ:
Литерал xyz типа int находится вне диапазона 5 ответовКод должен вернуть наибольшее простое число. Подробнее о задаче здесь:https: //projecteuler.net/problem=
int checkFactors(double na) {
long n = (long) na;
int biggestPrimeFactor = 0;
for (int i = 1; i < n; i++)
if (n % i == 0 && isPrimFaktor(i) && i > biggestPrimeFactor)
biggestPrimeFactor = i;
return biggestPrimeFactor;
}
boolean isPrimeFactor(int n) {
int length= 0;
for (int i = n; i > 0; i--)
if (n % i == 0)
length++;
if (length== 2)
return true;
return false;
}
Я решил сделать параметр checkFactors () двойным, потому что пытался проверить, почему мой код не работает должным образом.
System.out.println(checkFactors(13195));
работает и возвращает "29".
Тем не мение,System.out.println(checkFactors(600851475143));
не работает
"600851475143 типа int находится вне диапазона".
System.out.println(checkFactors(600851475143.0));
компилируется, но через пару секунд выдает ArithmeticException.