600851475143 is still an int literal. To use it as a long literal, you must append L to it: 600851475143L.
You can officially also use a lowercase l but you should never do that. In some fonts, the difference between l and 1 is not easy to see, so 600851475143l could be seen as both 600851475143L and as 6008514751431. An example:
Without the colouring inside that snippet it would be hard to read the difference between l1 and l2.
You have me there. There isn't a problem in the declaration or assignment to those, but using them as arguments, in comparisons or on the right hand side of assignments, can cause confusion. For instance:
With some fonts you may read this as being always true - 11 == 11 after all.
subject: "type int out of range" error on a long variable!