LINUX.ORG.RU

GCC 5.3.0 endless loop

 , , ,


0

1
#include <stdio.h>
#define NUMBER 600851475143LL

int main() {

	for (long long i = 1; i < (NUMBER / 2); ++i)
		if (NUMBER % i == 0)
			printf("%lld ", i);

	return 0;
}

что не так?

Deleted

Последнее исправление: budkin (всего исправлений: 3)

Нет там никакого бесконечного цикла, надо просто ждать долго. И fflush можешь вставить

#include <stdio.h>
#define NUMBER 600851475143LL

int main() {

        for (long long i = 1; i < (NUMBER / 2); ++i)
                if (NUMBER % i == 0)
                        {printf("%lld ", i);fflush(stdout);}

        return 0;
}

SZT ★★★★★
()
Ответ на: комментарий от SZT

попробовал клангом собрать - работает

anonymous
()

Я сделяль. Ожидайте.

#include <stdio.h>
#define NUMBER 600851475143LL

int main() {
    for (long long i = 1; i < (NUMBER / 2); ++i) 
        if (NUMBER % i == 0) {
            printf("[%03i%% complete] %lld\n", i*200/NUMBER, i);
    }
    return 0;
}
anonymous
()

понятно

вобщем я запускал из вима и из него ничего не печаталось, сейчас только попробовал запустить из консоли, и все нормально работает. буду знать

Deleted
()
#include <stdio.h>
#define NUMBER 600851475143LL

int main() {

	for (long long i = 1; i < (NUMBER / 2); ++i)
		if (NUMBER % i == 0)
			printf("%lld\n", i);

	return 0;
}

Почитай про буферизацию вывода.

hateyoufeel ★★★★★
()
Ответ на: комментарий от Deleted

Excellent ergonomics: all the key bindings are accessible by pressing the space bar or alt-m.

Ну уж нет.

hateyoufeel ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.