The number five problem is what is known as Integer Overflow. This issue is typically seen when the user has the ability to enter some number and he/she decides to enter something really, really big. So big, in fact, it doesn't fit within the standard integer value. Since a 32 bit integer can only go as high as 2147483647, there are checks built into .NET to make sure values entered by the user don't exceed this number. But what this check doesn't look at is arithmetic operations that occur after the input is gathered. For instance, if the user entered 2147483645, and 3 was added to that value behind the scenes, then the result would be over that maximum number shown above. If you then try to put that into an integer without doing some sort of check, the actual value you would get would be a really big negative number (specifically -2147483646). This is because of how integers and similar values work within computers, because by going over the top end 32 bit value, you flip the "negative" bit and make the number extremely small.