Witam. Napisałem kod, który sprawdza, czy wpisana liczba do scanf jest pierwsza oraz wyświetla zbiór liczb od 2 do N. Co mógłbym dodać do pętli for w ciag_liczb, aby wyświetlić tylko liczby pierwsze w tym zbiorze?
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
bool czy_pierwsza(int n, int i);
int ciag_liczb (int n, int i);
int main(void)
{
int n, i;
printf("Podaj liczbe calkowita: ");
scanf("%d", &n);
if (czy_pierwsza(n, i) == 1)
printf("%d jest liczba pierwsza.\n", n);
else
printf("%d nie jest liczba pierwsza.\n", n);
ciag_liczb(n, i);
system("pause");
return (0);
}
bool czy_pierwsza(int n, int i)
{
if (n < 2)
return false;
for (i=2; i*i<=n; i++)
if (n%i == 0)
return false;
return true;
}
int ciag_liczb (int n, int i)
{
if (n < 3)
return 1;
for (i=2; i <= n; i++) {
printf("%d\n", i);
}
}