Witam :) Napisałam program mający sprawdzać, które z zadanych liczb są pierwszymi. Najpierw ilość testów (t), potem liczby - program wyświetla "TAK" lub "NIE". Wykorzystuję sito Eratostenesa. Ponoć dodanie linijki std::ios_base::sync_with_stdio(0); przyśpiesza działanie strumieni. Dodałam ją na samym początku maina, przed zmiennymi, ale o ile bez niej czas wykonania wynosił 1.83 s, teraz wynosi 2.03 s. Dlaczego?
#include <iostream>
#include <stdio.h>
#include <math.h>
int main() {
std::ios_base::sync_with_stdio(0);
int j, zakres = 10000, pierwiastek, t, n;
int * tablica = NULL;
tablica = new int[100000];
pierwiastek = floor(sqrt(zakres));
for (int i = 1; i <= zakres; i++)
tablica[i] = 1;
for (int i = 2; i <= pierwiastek; i++) {
if (tablica[i] != 0) {
j = i + i;
while (j <= zakres) {
tablica[j] = 0;
j += i;
}
}
}
std::cin >> t;
bool y;
for (int k = 0; k < t; k++) {
std::cin >> n;
for (int m = 2; m < zakres; m++) {
if (tablica[m] != 0) {
if (n == m) {
std::cout << "TAK\n";
y = 1;
break;
}
else y = 0;
}
}
if ((n == 0) || (n == 1)) {
std::cout << "NIE\n";
continue;
}
if (y == 0) {
std::cout << "NIE\n";
}
}
delete[] tablica;
return 0;
}