algorytm.org

Implementacja w Java



Baza Wiedzy
wersja offline serwisu przeznaczona na urządzenia z systemem Android
Darowizny
darowiznaWspomóż rozwój serwisu
Nagłówki RSS
Artykuły
Implementacje
Komentarze
Forum
Bookmarki






Sonda
Implementacji w jakim języku programowania poszukujesz?

Sito Eratostenesa - Implementacja w Java
Ocena użytkownikóww: *****  / 11
SłabyŚwietny
Nadesłany przez gchlebus, 20 lutego 2011 16:45
Kod przedstawiony poniżej przedstawia główną część rozwiązania problemu.
Pobierz pełne rozwiązanie.

Jeżeli nie odpowiada Ci sposób formatowania kodu przez autora skorzystaj z pretty printer'a i dostosuj go automatycznie do siebie.

sitoerastotenesa/Sito.java:
/**
 * www.algorytm.org
 * sito Eratostenesa - poszukiwanie liczb pierwszych
 */

package sitoerastotenesa;

public final class Sito {
    private int[] tab;
    private int sqrt;

    Sito(int a, int b){
        sqrt = (int) Math.sqrt(b);
        //wypelnianie tablicy liczbami z przedzialu [a,b]
        tab = new int[b-a+1];
        for (int i = 0; i<tab.length; i++){
            tab[i] = a+i;
        }
        odsiew();
        drukuj();
    }

    //selekcja liczb pierwszych zgodnie z algorytmem Erastotenesa
    public void odsiew (){
        int index = 0;
        while (tab[index] <= sqrt ){
            for (int i = index+1; i<tab.length; i++){
                if (tab[i]%tab[index] == 0) tab[i]=0;
            }
            do{
                index++;
            }while(tab[index]==0);
        }
    }

    //wydruk wynikow
    public void drukuj(){
        for (int i = 0; i<tab.length; i++){
            if (tab[i] != 0){
                System.out.println(tab[i]);
            }
        }
    }
}
Dodaj komentarz