Początkujący, problem z pętlą for w pętli for

0

Witam mam następujący problemik

Dlaczego skompilowany program działa prawidłowo, a według mojego rozumowania nie powinien. Program ma wyświetlać liczby pierwsze z przedziału od 2 do n. Moje pytanie brzmi dlaczego program nie wyświetla liczby 4 (wiem że nie jest to liczba pierwsza).

Jeżeli w pierwszej pęntli zostanie wygenerowanie 4 i w drugiej 4 to zgodnie z if (i == j) //* jeżeli liczba i jest równa j to jest to liczba pierwsza,* 4 powinna zostać wyświetlona jako liczba pierwsza, a mimo to program nie wyświetla, dlaczego?<

{
int n, i, j; //// deklaracja zmiennych//
char koniec;
do
{
cout <<" Podaj liczbe ktora chcesz sprawdzic : ";
cin >> n;

for (i = 2; i <= n; i++) //// pętla generujšca liczby do sprawdzenia od i = 2 do n//
{
           for (j = 2; j <= i; j++) //// pętla generujšca dzielniki w zakresie od j = 2 do i//
{
           if (i != j && i % j == 0) //// warunek sprawdzajšcy czy liczba i jest różna od j oraz czy dzieli się na j//
                 break; //// jeżeli warunek jest spełniony następuje zakonczenie pętli//
           if (i == j)	//// jeżeli liczba i jest równa j to jest to liczba pierwsza//
                 cout << i <<" , ";
}
}
1

nie dojdzie do takiej sytuacji dlatego, że gdy w pierwszej pętli i = 4 a w drugiej rozpoczyna się pętla i będzie j = 2 to wtedy warunek na break zostanie spełniony przez co druga pętla po prostu się zakończy (i będzie równe 5).
Najlepiej skorzystaj z debuggera to zobaczysz dlaczego tak.

0

Już kumam, dzięki za pomoc!

1 użytkowników online, w tym zalogowanych: 0, gości: 1