Vector (метод эратосфена)
Пользователь в вектор вводит свои значения чисел (от 0 до 99) после чего нужно методом эратосфена оставить только простые числа этого вектора. Никак не получается это сделать, помогите, пожалуйста
void resh(vector<int>& arr, int dr)
{
int n = 0;
int p = 2;
int* a = new int[98];
for (int i = 0; i < 98; i++)
a[i] = i;
for (p; p < 98; p++)
{
if (a[p] != 0)
{
for (int j = p * p; j < 98; j += p)
a[j] = 0;
}
}
p = 0;
while (n <= dr)
{
if (arr[n] == a[p])
{
cout << arr[n] << " ";
n++;
p = 0;
}
else {
if (p < 97) p++;
else {
p = 0;
n++;
}
}
}
}/*dr - кол-во элементов в векторе, arr - сам вектор