Jon Hough wrote: > It seems J did not want to handle > q: 9999999999999999 > 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5
That's not a limit on q: or p: specifically; numeric literals greater than 2^32 (or 2^64, if you're on a 64-bit machine) are interpreted as IEEE double-precision floating-point values, which can hold small numbers to great precision, or large numbers to small precision, but not large numbers to large precision. More specifically, at some point, integers with distinct string representations are mapped to the same floating-point value. I can't reproduce your exact problem on my 64-bit machine (which produces 3 3 11 17 73 101 137 5882353, as you'd expect), but I bet if you just typed bare 9999999999999999 into the session manager, you'd see something like 1e16 (note the scientific notation, indicating the value is interally represented with a floating point number), whose prime-decomposition is, indeed, */ 2 5^16, as q: reports. In order to represent 9999999999999999 exactly on your 32-bit machine, you need to use extended precision notation: 9999999999999999x . Not that x:9999999999999999 will NOT work, for the very same reason q:9999999999999999 doesn't work. -Dan ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
