Число «1231231231231236» слишком велико, чтобы поместиться в тип данных «int». Добавьте оператор printf, чтобы показать, какое число, по вашему мнению, ваша программа дала, и, если оно простое, ваша программа работает нормально; иначе у вас может быть проблема, которая заслуживает проверки. Добавление поддержки целых чисел произвольного размера требует значительных дополнительных усилий.
Причиной возникновения этой проблемы является то, что внутренние типы данных, такие как int, имеют фиксированный размер - вероятно, 32 бита или 4 байта для int. Учитывая это, переменные типа int могут представлять только 2 ^ 32 уникальных значения - около 4 миллиардов. Даже если вы использовали unsigned int (это не так), тип int нельзя использовать для хранения чисел, превышающих 4 миллиарда. Ваше число на несколько порядков больше этого, и, как таковое, когда вы пытаетесь поместить свой ввод в переменную int, что-то происходит, но я могу сказать вам, что не происходит: ему не присваивается значение 1231231231231236 .