Projeto Euler # 3 fora do intervalo inteiro java [duplicado]
Esta pergunta já tem uma resposta aqui:
O literal xyz do tipo int está fora do intervalo 5 respostasO código deve devolver o maior número primo. Mais sobre a tarefa aqui: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;
}
ecidi tornar o parâmetro checkFactors () um duplo, porque tentei testar por que meu código não funcionava corretament
System.out.println(checkFactors(13195));
trabalha e retorna "29".
Contudo,System.out.println(checkFactors(600851475143));
não funciona
"600851475143 do tipo int está fora do intervalo".
System.out.println(checkFactors(600851475143.0));
é compilado, mas depois de alguns segundos uma ArithmeticExceptio