Sito Eratostenesa w JavaScript

Algorytm rozwiązywania równania liniowego

Liczby pierwsze

<!DOCTYPE html>
<html>
<body>
<script>
  
var n = prompt("n:", "");
var skr = [], i, j;
if (n < 2) alert("Brak liczb pierwszych w podanym zakresie");
else{
  for(i = 2; i <= n; i++) skr[i] = false;
  i = 2;
  do{
    if (!skr[i]){
      j = i * i;
      while(j <= n){
        skr[j] = true;
        j += i;
      }
    }
    i++;
  } while ((i * i) <= n);
  for(i = 2; i <= n; i++) if (!skr[i]) document.write(i+" ");
}

</script> 
</body>
</html>

  {loadposition rek_alg}

Numer Linii

Punkt Algorytmu (Schemat)

Opis Linii Programu

-

1

START programu (inicjalizacja struktury HTML).

6

2

Wczytanie wartości n (Czytaj n).

7

-

Deklaracja zmiennych skr, i, j.

8

3, 4

Sprawdzenie warunku n < 2 i wyświetlenie komunikatu (Pisz: "Brak...").

9

-

Początek bloku else (dla n >= 2).

10

6

Inicjalizacja tablicy skr (ustawienie skr[i] = false dla i od 2 do n).

11

5

Ustawienie iteratora i = 2.

12

-

Początek pętli głównej do...while.

13

9

Warunek sprawdzający, czy !skr[i] (czy i nie jest skreślone).

14

10

Inicjalizacja iteratora wielokrotności j = i * i.

15

11

Warunek pętli wewnętrznej while sprawdzający, czy j <= n.

16

12

Ustawienie skr[j] = true (Oznaczanie jako skreślone).

17

12

Przejście do kolejnej wielokrotności j = j + i.

-

-

Niejawne powtórzenie pętli while(j <= n).

20

13

Inkrementacja i = i + 1.

21

7, 14

Warunek końca pętli głównej do...while (i * i <= n).

22

15, 16, 17, 18, 19

Pętla wypisująca wyniki (for): 15 (i = 2), 16 (warunek !skr[i]), 17 (Pisz: i), 18 (i = i + 1), 19 (i > n).

-

20

STOP programu (zakończenie wykonywania skryptu).