In the belief that good code should compile without even warnings, I can't figure out how to make G++ stop warning about this line: s = s * 2891336453 + 1; The warning is: decimal integer constant is so large that it is unsigned -- Joshua D. Boyd