Hacker News new | past | comments | ask | show | jobs | submit login

That is mind blowing, but it’s not immediately obvious to me that it’s equivalent for n > sqrt(INT_MAX). Is it? And if so, is the compiler somehow smart enough to know that?





Integer overflow is actually undefined behaviour thus the compiler is free to assume it doesn't happen.

If you assume two’s complement arithmetic, then this is always equivalent because you’re basically just calculating the answer in a modular ring.



Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: