#include <iostream>
using namespace std;
void createNumbers(bool *&table, int count){
table = new bool[count];
for (int i = 0; i < count + 1; i++){
table[i] = true;
}
}
int countPrimeNumbers(bool *table, int a, int b){
int count = 0;
for (int i = a; i <= b; i++){
if (table[i]) count++;
}
return count;
}
int sito(bool *table, int a, int b){
int w;
for (int i = 2; i * i <= b; i++){
if (table[i] != false){
for (int j = 2 * i; j <= b; j += i)
{
table[j] = false;
}
}
}
return countPrimeNumbers(table, a, b);
}
int main() {
int test = 0;
int a = 0;
int b = 0;
bool *tab;
cin >> test;
for (int i = 0; i < test; i++){
cin >> a >> b;
createNumbers(tab, b);
cout << sito(tab, a, b)<<endl;
delete(tab);
}
return 0;
}
Dlaczego mam wyciek pamieci? Przeciez ladnie zwalniam pamiec :(