jcmvbkbc, вы про sigint и т.п? Это совсем не то. Во-первых, это фича операционной системы, а не языка c. Во-вторых, эти сигналы обрабатываются в момент переключения потоков. После выполнения обработки программа продолжает работу с того же места, где ее прервали. Это скорее как многопоточность, а не прерывание.
DDwrt100, Значит оно в файл перенаправилось. Файл может быть пустым, если нет прав в него записывать. Но скорее всего, вы просто проверяете не тот файл.
dmitrii2004, Переменная m используется и для количества запросов (граница цикла по i) и внутри бинпоиска. Она в бинпоиске перетирается и цикл внезапно заканчивается.
versidue, Ну, в стандерте написано, "числа с плавающей точкой, поддерживающие стандарт IEEE". Там не сказано, что он всегда поддерживается. Там даже есть ссылка на метод определения, поддерживается ли этот стандарт и напротив float написано "usually true". Т.е. не всегда.
dmitrii2004, Постарайтесь напистаь сами. Если что-то непонятно - спрашивайте. Первый вариант с деревом отрезков - по-моему, концептуально проще. Код дерева отрезков есть по ссылке. Вам только нужно будет изменить сумму на gcd в паре мест. А дальше один цикл for по левой границе и вложенный цикл while по правой.