Witam. Mam program który powinien zliczać ile jest liczb pierwszych w zakresie od 2 do n!. Mam jeden błąd ale nie mogę go znaleźć. Proszę pomóżcie.
#include<stdio.h>
#include<math.h>
int silnia (int i)
{
if(i < 1)
{
return 1;
}
else
{
return i * silnia(i - 1);
}
}
int main()
{
int n, zakres, ilosc=0, granica, i, j;
int tablica[50];
printf("Podaj liczbe do silni = ");
scanf("%d", &n);
zakres=silnia(n);
for(i=0; i!=zakres; i++)
{
tablica[i]=1;
}
granica=floor(sqrt(n));
for(i=2; i!=granica; i++)
{
if(tablica[i]!= 0)
{
j=i+i;
while(j<=n)
{
tablica[j]=0;
j=j+i;
}
}
}
for(i=2; i<=n; i++)
{
if(tablica[i]!=0)
{
ilosc++;
}
printf("Liczb pierwszych jest: %d", ilosc);
}}