/ by zero는 0으로 나눠서 에러가 발생했다는 의미입니다.
나누는 값이 0이 되는 이유는 int형의 overflow 때문입니다.
1 ÷ (1 × 2 × 3 × ... ) = 1 ÷ 2 ÷ 3 ÷ ...
임을 활용하여 계산 방식을 바꿔보세요
int 자료형은 바이트 수가 정해져있습니다. 즉, 최댓값, 최솟값이 정해져있어요. overflow란 값이 자료형의 최대/최소 범위를 넘어가서 쓰레기 값이 나오는 경우를 의미합니다.
혹여나 최대/최소 값이 궁금하다면
System.out.println(Integer.MAX_VALUE);
System.out.println(Integer.MIN_VALUE);
한번 실행해보세요