Zadanie przy użyciu sita Erastotenesa

Odpowiedz Nowy wątek
2020-03-22 07:30

Rejestracja: 2 tygodnie temu

Ostatnio: 4 dni temu

0

Hej! zadanie wpełni skonczone, ale wciąż coś nie działa ;) ( jest to sito Erastotenesa

import java.util.Arrays;

public class SieveOfEratosthenes {

    public static void main(String[] args) {

    }

    private int[] sieve(int maximumNumber) {
        if (maximumNumber < 0) {
        }
        return new int[0];
    }

    private boolean[] createbooleans(int maximumNumber) {

        int n = 100;
        boolean pierwsze[] = new boolean[n];

        Arrays.fill(pierwsze ,true);
        pierwsze[0] = false;
        pierwsze[1] = false;
        for (int i = 2; i < n; i++) {
            if (pierwsze[i] == false) ;

            for (int j = i + i; j < n; j = j + i) {
                pierwsze[j] = false;
            }
        }
        return pierwsze;
    }

        private void markMultiplications(boolean[] numbers){

            int numberOfPrimes = 0;
            for (int i = 2; i < pierwsze.length; i++) {
                if (pierwsze[i] == true) {
                    numberOfPrimes++;

                }
            }
        }
                private int[] filterPrimes(boolean[] numbers) {

                int[] primes = new int[numberOfPrimes];
                for (int i = 2, x = 0; i < pierwsze.length; i++) {
                    if (pierwsze[i] == true) {
                        primes[x] = i;
                        x++;

                    }

                }
                System.out.println(Arrays.toString(primes));
                return primes;
            }
        }
edytowany 1x, ostatnio: Shalom, 2020-03-22 22:49

Pozostało 580 znaków

2020-03-22 08:33

Rejestracja: 7 miesięcy temu

Ostatnio: 22 godziny temu

1

Ale co tu jest skończone? Przecież to się nawet nie skomplikuje. To w ogóle twój kod? :)

Pozostało 580 znaków

2020-03-22 09:07

Rejestracja: 2 tygodnie temu

Ostatnio: 4 dni temu

0

Kiedy usunę dwie ostatnie metody to kod działa, jednak mają byc zawarte w kodzie.( Tak, mój ;))

  public static void main(String[] args) {

    }

    private int[] sieve(int maximumNumber) {
        if (maximumNumber < 0) {
        }
        return new int[0];
    }

    private int[] createbooleans(int maximumNumber) {

        int n = 100;
        boolean pierwsze[] = new boolean[n];
        Arrays.fill(pierwsze ,true);
        pierwsze[0] = false;
        pierwsze[1] = false;
        for (int i = 2; i < n; i++) {
            if (pierwsze[i] == false) ;
            for (int j = i + i; j < n; j = j + i) {
                pierwsze[j] = false;
            }
        }
      **  private void markMultiplications ( boolean[] numbers){**
            int numberOfPrimes = 0;
            for (int i = 2; i < pierwsze.length; i++) {
                if (pierwsze[i] == true) {
                    numberOfPrimes++;
                }
            }
        **    private int[] filterPrimes ( boolean[] numbers)
            int[] primes;**
            {
                primes = new int[numberOfPrimes];
                for (int i = 2, x = 0; i < pierwsze.length; i++) {
                    if (pierwsze[i] == true) {
                        primes[x] = i;
                        x++;
                    }
                }
            }
            System.out.println(Arrays.toString(primes));
            return primes;
        }
    }
}
edytowany 1x, ostatnio: Shalom, 2020-03-22 22:45
Nic dziwnego bo właśnie w tych dwóch metodach są błędy kompilacji. Z całym szacunkiem ale nie wydaje mi się żeby był Twój bo najwyraźniej nie masz pojęcia co ten kod w ogóle robi. Co to w ogóle znaczy "mają być zawarte" :) polecam napisać to samemu krok po kroku od początku, a ewentualne problemy skonsultować tu na forum, albo zapytać autora ;) to co tu wrzuciłaś to na 90% kopiuj wklej z jakiegoś przykładu - kiedys_mialem_lepszy_brzuch 2020-03-22 09:50

Pozostało 580 znaków

2020-03-22 22:52
Moderator

Rejestracja: 16 lat temu

Ostatnio: 58 minut temu

4

Nie żartuj. Nic tu nie działa. Co niby robi takie

if (pierwsze[i] == false) ;

?

Zresztą raz masz w kodzie tablicę pierwsze a raz primes, ewidentnie próbujesz sklejać i przerabiać jakiegoś gotowca. Moje zalecenie: weź gotowca skoro musisz, ale takie rzeczy jak zmianę nazw zmiennych to rób w jakimś IntelliJ, bo on ogarnie zmianę wszędzie.


Masz problem? Pisz na forum, nie do mnie. Nie masz problemów? Kup komputer...

Pozostało 580 znaków

2020-03-23 09:45

Rejestracja: 3 lata temu

Ostatnio: 2 minuty temu

0

Jak się Chcesz czegoś auczyć, to Przepisz gotowca, ale pseudokod z Wikipedii :)
https://en.wikipedia.org/wiki/Sieve_of_Eratosthenes#Pseudocode


Pozostało 580 znaków

Odpowiedz

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0