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); } } |
Mateusz Mazurek