#include <stdint.h>
unsigned long long sum(unsigned long num)
{
unsigned long long result = 0, previous = 0;
for(unsigned long i = 1; i <= num; i++)
{
result += i;
if(result < previous)
{
printf("Wraparound at : %lu\n", i
); break;
}
previous = result;
}
return result;
}
int main(void)
{
printf("%llu\n", sum
(1000000)); printf("%llu\n", sum
(6074001001UL
)); }
I2luY2x1ZGUgPHN0ZGludC5oPgoKdW5zaWduZWQgbG9uZyBsb25nIHN1bSh1bnNpZ25lZCBsb25nIG51bSkKewogICAgdW5zaWduZWQgbG9uZyBsb25nIHJlc3VsdCA9IDAsIHByZXZpb3VzID0gMDsKCiAgICBmb3IodW5zaWduZWQgbG9uZyBpID0gMTsgaSA8PSBudW07IGkrKykKICAgIHsKICAgICAgICByZXN1bHQgKz0gaTsKICAgICAgICBpZihyZXN1bHQgPCBwcmV2aW91cykKICAgICAgICB7CiAgICAgICAgICAgIHByaW50ZigiV3JhcGFyb3VuZCBhdCA6ICVsdVxuIiwgaSk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgICAgICBwcmV2aW91cyA9IHJlc3VsdDsKICAgIH0KICAgIHJldHVybiByZXN1bHQ7Cn0KCmludCBtYWluKHZvaWQpCnsKICAgIHByaW50ZigiJWxsdVxuIiwgc3VtKDEwMDAwMDApKTsKICAgIHByaW50ZigiJWxsdVxuIiwgc3VtKDYwNzQwMDEwMDFVTCkpOwp9