Необходимо найти в массиве, заданной длины, простые числа и вывести их на экран с помощью решета Эратосфена. Не могу понять, где ошибки. С динамическим массивом работаю впервые.
#include <stdio.h>
#include <malloc.h>
int IsItSimple(int N)
{
for (int i = 2; i * i <= N; i++)
if (N % i == 0) {
return 0;
}
return 1;
}
int main(void) {
int* Array;
int ArrLength, j = 1;
scanf_s("%d", &ArrLength);
Array = (int*)malloc(ArrLength * sizeof(int));
for (int i = 0; i < ArrLength; i++) {
Array[i] = i + 1;
}
while (j <= ArrLength) {
if (IsItSimple(Array[j]) == 1 && Array[j] != 0) {
int temp = j;
while (temp <= ArrLength) {
temp = temp + Array[j];
Array[temp] = 0;
}
}
j++;
}
for (int i = 1; i < ArrLength; i++) {
if (Array[i] != 0) {
printf("%d ", Array[i]);
}
}
free(Array);
return 0;
}