Prośba o wyjaśnienie kodu

Prośba o wyjaśnienie kodu
D6
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 13
0

Witam, proszę o wyjaśnienie krok po kroku co robi ten kod, bo ciężko mi to zrozumieć:

Kopiuj
#include <stdio.h>
#include <stdlib.h>

int main () {

   int i, j;

   for(i = 2; i<100; i++) {

      for(j = 2; j <= (i/j); j++)
         if(!(i%j)) break;
         if(j > (i/j)) printf("%d is prime\n", i);
   }

   return 0;
}

Zadaniem programu jest wypisanie liczb pierwszych mniejszych od 100.

kate87
  • Rejestracja: dni
  • Ostatnio: dni
1

Łatwiej bedzie jak ten kawałek kodu przepiszesz, odpalisz i zapytasz. Albo napisz której dokladnie linijki nie rozumiesz, z mojego punktu widzenia program jest bardzo prosty i nie ma nawet zaciemnienia kodu.

D6
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 13
0

Jestem początkujący, dlatego nawet pętla w pętli to dla mnie jeszcze czarna magia :S ale dobrze, proszę o wyjaśnienie tego

Kopiuj
if(!(i%j))
Phestek
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 89
1

Jestem początkujący, dlatego nawet pętla w pętli to dla mnie jeszcze czarna magia :S ale dobrze, proszę o wyjaśnienie tego
if(!(i%j))

Wygoogluj "kurs c++".

bogdans
  • Rejestracja: dni
  • Ostatnio: dni
1
Kopiuj
i%j

to reszta z dzielenia i przez j.

Kopiuj
!(i%j)

oznacz, że ta reszta nie jest zerem => i dzieli się przez j => liczba i nie jest pierwsza.

Shadoow
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 42
1

Zauważ, że ten warunek znajduje się wewnątrz drugiej pętli for i to jest jedyne co się tam znajduje - może lepiej zapisać to w ten sposób - będzie czytelniejsze :

Kopiuj
for(j = 2; j <= (i/j); j++)
{
         if(!(i%j)) break;   // Odpowiada to zapisowi if((i%j)==0) break; - natychmiastowa eliminacja danej liczby jeżeli dzieli się przez 2 i nie jest dwójką 
}

Rozpisz sobie wszystko po kolei na kartce, zobacz jak zmienne zachowują się dla kolejnych liczb i co spełnienie / niespełnienie danego warunku powoduje. Ewentualnie skorzystaj z debuggera

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.