Witam wszystkich Mam problem: otóż gdy robiłem sitem eratostenesa i potem deletowałem tablicę wyskakiwał mi błąd przekroczenia limitu czasu. Natomiast gdy pomyślałem by wykorzystać poradę narbeja coś chyba szwankuje z pamięcią, bo program się zamyka od razu po włączeniu, gdy miejsc w tablicy dam 1 000 000, natomiast gdy miejsc w tablicy będzie 100 000 wszystko działa jak należy. Czy ktoś poratuje mnie i powie jak rozwiązać ten problem?
include
include
void sito(bool *tab, int n)
{
tab[1]=1;
tab[0]=1;
for ( int i=2; i*i<=n; i++)
{
if(!tab[i])
{
for ( int j = i*i ; j<=n; j+=i)
tab[j] = 1;
}
}
}
void zamiana(bool*tab, int *tablica, int n)
{
for(int i=2; i<=n; i++)
{
if(!tab[i])
{
tablica[i]=tablica[i-1]+1;
}
else
{
tablica[i]=tablica[i-1];
}
}
}
int main()
{
bool tablica[1000001]= {};
int tablica2[1000001]= {};
sito(tablica,1000000);
zamiana(tablica, tablica2,1000000);
int test;
scanf("%d",&test);
for( int t=0; t<test; t++)
{
int suma, dolny, gorny;
scanf("%d%d",&dolny,&gorny);
suma=tablica2[gorny]-tablica2[dolny-1];
printf("%d ",suma);
}
return 0;
}`