600851475143에 대한 "정수 수가 너무 큼" 오류 해결
제공된 코드 조각은 숫자 600851475143의 가장 큰 소인수를 찾으려고 시도합니다. 그러나 코드를 실행하면 "정수가 너무 큽니다." 오류가 발생합니다. 이 오류는 600851475143이 코드에서 사용하는 유형인 32비트 정수로 표현할 수 있는 최대값을 초과하기 때문에 발생합니다.
이 문제를 해결하고 가장 큰 소인수인 600851475143을 찾으려면 코드를 더 큰 값을 나타낼 수 있는 데이터 유형을 사용해야 합니다. 이는 i 유형을 64비트 정수인 long으로 수정하여 달성할 수 있습니다.
수정된 코드는 다음과 같습니다.
public class Three { public static void main(String[] args) { Three obj = new Three(); obj.function(600851475143L); } private Long function(long i) { Stack<Long> stack = new Stack<Long>(); for (long j = 2; j <= i; j++) { if (i % j == 0) { stack.push(j); } } return stack.pop(); } }
리터럴 600851475143을 600851475143L로 작성하면 명시적으로 다음과 같습니다. 64비트 정수로 표현됩니다. 이를 통해 코드는 주어진 숫자의 가장 큰 소인수를 정확하게 찾아서 반환할 수 있습니다.
위 내용은 소인수를 찾을 때 '정수가 너무 큼' 오류를 해결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!