Mateusz Mazurek – programista z pasją

Python, architektura, ciekawostki ze świata IT

Programowanie

Sito Eratostenesa – implementacja Java

Cześć! Cieszę się, że mnie odwiedziłeś/aś. Zanim przejdziesz do artykułu chciałbym zwrocić Ci uwagę na to, że ten artykuł był pisany kilka lat temu (2013-01-26) miej więc proszę na uwadzę że rozwiązania i przemyślenia które tu znajdziesz nie muszą być aktualne. Niemniej jednak zachęcam do przeczytania.

Prosty algorytm polegający na wykreslaniu z zadanego przedziału wielokrotności liczb mniejszych lub równych pierwiastkowi kwadratowemu. Liczby które nie zostaną wykreślone są liczbami pierwszymi. Implementacja:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
public static void main(String[] args) {
    int n=100; // definiuje przedział od o do 99
    boolean pierwsze[] = new boolean[n];
    Arrays.fill(pierwsze, true);//wypelniam calosc true
    pierwsze[0]=false;//0 i 1 od razu wyrzucam
    pierwsze[1]=false;
    for(int i=2;i<=Math.sqrt(n);i++)// lece po tablicy do sqrt(n)
    {

        for(int t=i+i;t<n;t=t+i){//wykreslam wieloktornosci

            pierwsze[t]=false;

        }

    }

    for(int r=0;r<n;r++){//wyswietlam te indeksy ktore sa oznaczone jako true

        if(pierwsze[r])
        System.out.println(r);

    }

}
Dzięki za wizytę,
Mateusz Mazurek

A może wolisz nowości na mail?

Subskrybuj
Powiadom o
guest

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.

0 komentarzy
Inline Feedbacks
View all comments