Сообщество IT-специалистов
Ответы на любые вопросы об IT
Профессиональное развитие в IT
Удаленная работа для IT-специалистов
#include <stdio.h> #include <malloc.h> int main(void) { int* Array; int ArrayLength; scanf_s("%d", &ArrayLength); Array = (int*)malloc(ArrayLength * sizeof(int)); for (int i = 0; i < ArrayLength; i++) { Array[i] = i + 1; } for (int i = 1; i * i <= ArrayLength; i++) { if (Array[i] != 0) { for (int j = i + Array[i]; j < ArrayLength; j += Array[i]) { Array[j] = 0; } } } for (int i = 1; i < ArrayLength; i++) { if (Array[i] != 0) { printf("%d ", Array[i]); } } free(Array); return 0; }
В итоге реализовал так, поняв все ошибки. Проверка была действительно лишней.