Потому что вы используете неправильный тип.
unsigned long long int tmp, final;
Компилятор должен пожаловаться на то, что числовая константа (литерал 1231123123123213) не соответствует длинному целому. Это усекается. Кроме того,% llu предназначен для печати длинных длинных, а не длинных целых;).