"Integer number too large" error message for 600851475143
integer, java
Solution
`600851475143` cannot be represented as a 32-bit integer (type `int`). It can be represented as a 64-bit integer (type `long`). long literals in Java end with an "L": `600851475143L`
Problem
``` public class Three { public static void main(String[] args) { Three obj = new Three(); obj.function(600851475143); } 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(); } } ``` When the code above is run, it produces an error on the line `obj.function(600851475143);`. Why?