Witam
Mam takie zadanie do wykonania:
Wprowadz liczbe calkowita N.
a) sprawdz czy N jest liczba pierwsza,
b) sprawdz, ile liczb z zakresu 2..N jest liczbami pierwszymi.
Napisałem taki kod programu w języku C:
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int N, i, ile = 0 ;
printf("Podaj liczbe: \n");
scanf("%d", &N);
// Sprawdzenie czy N jest liczb¹ pierwsza
for(i = 2; i < N; i++)
{
if(N % i == 0)
{
printf("Podana liczba nie jest liczba pierwsza ");
return(0);
}
}
printf("Podana liczba jest liczba pierwsza\n");
//Sprawdzenie ile liczb z zakresu 2 ....N jest liczbami pierwszymi
printf("------------------------------------------------------");
printf("Podaj liczbe: \n");
scanf("%d", &N);
for(i = 2; i < N; i++)
{
if(N % i == 0)
{
printf("Podana liczba nie jest liczba pierwsza. \n");
return(0);
} else if(N % i != 0)
{
ile = ile + 1;
}
}
printf("%d", ile);
return (0);
}
Podpunkt a zrobiłem bez większych problemów. Problem pojawił się w przypadku podpunktu b. w rezultacie jak podam liczbe 7 to pokazuje mi że w zakresie od 2 do 7 jest 5 liczb pierwszych. Czy ktoś mógłby mi pomóc w znalezieniu błędu i poprawieniu go?. Z góry dziękuję
pozdrawiam