Primzahlen: ein paar offene Fragen

Status
Nicht offen für weitere Antworten.

alex2345

Mitglied
Habe folgendes Programm hier im Forum über Primzahlen gefunden, zu dem ich aber noch ein paar Fragen hätte. Es funktioniert wunderbar aber ich blicke nicht ganz durch:

Code:
public class Primzahlentest
{

    private int[] primes;
    private int found;

    public boolean isPrim(int n) 
    { 

        if (n <= 1) return false;

        if (n == 2) return true;

        if (n % 2 == 0) return false;

        for (int p = 3; p * p <= n; p += 2)
            if (n % p == 0)
                return false;

        return true;

    }

    public int[] getFirstPrims(int k)
    {
        primes = new int[k];
        primes[0] = 2;
        primes[1] = 3;

        for (int index = 2; index < k; index++)
        {
            boolean found = false;

            for (int n = primes[index - 1] + 2; !found; n += 2)
            {
                for (int i = 1; true; i++)
                {
                    int p = primes[i];
                    if (found = p * p > n)
                    {
                        primes[index] = n;
                    }
                    if (n % p == 0) break;
                }
            }
        }
        return primes;
    }

}

for (int p = 3; p * p <= n; p += 2) boolean isPrim liefert ja true oder false bei einer eingegebenen Zahl zurcük. Für 2 und alle geraden Zahlen ist dies ja fix definiert. Wieso wird p=3 definiert? Und wieso nehme ich dann das Quadrat von p und überprüfe ob es <= n ist?

Wieso wird bei getFirstPrim found in der ersten for-Schleife auf false gesetzt?
Im Gegensatz zum oberen Teil wo ja überprüft wird ob p * p <= n wird im unteren p * p > n überprüft. Beide funktionieren einwandfrei, obwohl ja das Gegenteil überprüft wird. Wieso ist das so?
Wenn man checkstyle benutzt sagt es dass man "inner assignments" vermeiden soll. Dieses Problem tritt in dieser Zeile auf: if (found = p * p > n) Was passt daran nicht?
 
S

SlaterB

Gast
> Wieso wird p=3 definiert?

ab 3 muss überprüft werden, für 1 und 2 sowie alle geraden Zahlen ist das Ergebnis schon bekannt

> Und wieso nehme ich dann das Quadrat von p und überprüfe ob es <= n ist?

bis zur Wurzel von n sind alle interessanten Teiler untersucht,
Beispiel 100, es reicht die Zahlen 3-10 zu untersuchen,

der Teiler 20 ist beispielweise irrelevant, da der Gegenteiler 5 (20*5 = 100) dann schon vorher gefunden worden wäre

> Wieso wird bei getFirstPrim found in der ersten for-Schleife auf false gesetzt?

weil dessen Bedeutung pro Schleifendurchlauf neu errechnet werden soll,
das ist doch was ganz grundlegendes,

stell dir vor du suchst im Telefonbuch nach 'Schmidt' und findest den Namen oder auch nicht (true/false),
dann suchst du nochmal, diesmal nach 'Müller',
dabei willst du doch nicht das Ergebnis der vorherigen Suche miteinfließen lassen,
also alles zurück auf Grundstellung


> Beide funktionieren einwandfrei, obwohl ja das Gegenteil überprüft wird. Wieso ist das so?

if (a < b) und if (b > a) sehen auch entgegengesetzt aus, aber das hat doch nichts zu sagen,
zudem kann man fomulieren "solange x gilt, bleibe am Ball" und "wenn x nicht gilt dann höre auf",

eine einzelne Bedingung hat noch keine wichtige Bedeutung,
erst der Gesamtzusammenhang bestimmt den Sinn

mit solchen Fragen mache ich mir jetzt aber nicht die Mühe, die sehr komplexe Methode getFirstPrims(int k) überhaupt selber zu verstehen, die hat es in sich
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
iAmFaiinez Primzahlen Tester ohne Array Java Basics - Anfänger-Themen 4
sserio Wieso werden nicht alle Primzahlen bis 1000 in meine Liste gepackt ? Java Basics - Anfänger-Themen 8
B Primzahlen bis 100 addieren Java Basics - Anfänger-Themen 16
H Primzahlen finden - Zeit optimieren Java Basics - Anfänger-Themen 34
S Primzahlen in Array ausgeben Java Basics - Anfänger-Themen 14
M Array auf Primzahlen prüfen Java Basics - Anfänger-Themen 7
D Primzahlen Rechner nach Eratostenes von Kyrene Algorithmus Java Basics - Anfänger-Themen 2
fendix Compiler-Fehler Algorithmus zur Bestimmung von Primzahlen Java Basics - Anfänger-Themen 7
P Methode die ausgibt wie viele Primzahlen es zwischen 2 und n gibt Java Basics - Anfänger-Themen 10
G Primzahlen von Rekursiv nach Iterativ Java Basics - Anfänger-Themen 6
M Rekursives Programm zum Anzeigen von Primzahlen Java Basics - Anfänger-Themen 3
P Primzahl mit Angabe der höchsten Primzahl und Angabe der Anzahl von Primzahlen bis 100 Java Basics - Anfänger-Themen 8
Java The Hutt Primzahlen - die ersten 100 Java Basics - Anfänger-Themen 17
N Erste Schritte Primzahlen-ArrayIndexOutOfBounds Java Basics - Anfänger-Themen 23
R Primzahlen Zähler Programm / Benachbarte Primzahlen Java Basics - Anfänger-Themen 30
D Klassen Primzahlen überprüfen Java Basics - Anfänger-Themen 3
I Primzahlen Java Basics - Anfänger-Themen 17
Z Rekursion Primzahlen Java Basics - Anfänger-Themen 1
M Erste Schritte primzahlen ermitteln, nur zahlen als eingabe erlauben Java Basics - Anfänger-Themen 34
S Primzahlen berechnen funktioniert nicht richtig Java Basics - Anfänger-Themen 1
R primzahlen im array Java Basics - Anfänger-Themen 33
M Primzahlen, nur jede 2te ausgeben Java Basics - Anfänger-Themen 11
T Primzahlen Fehler Java Basics - Anfänger-Themen 4
K Primzahlen Java Basics - Anfänger-Themen 6
L Primzahlen im Array ausgeben Java Basics - Anfänger-Themen 3
P Primzahlen Java Basics - Anfänger-Themen 3
A Methoden Primzahlen erstellen von 1 bis 100-Codeprobleme Java Basics - Anfänger-Themen 2
H Variablenverfolgung - Primzahlen Java Basics - Anfänger-Themen 7
G Primzahlen Java Basics - Anfänger-Themen 6
D Primzahlen und Rekursive Liste Java Basics - Anfänger-Themen 29
S Primzahlen bis 1000 ausgeben Java Basics - Anfänger-Themen 3
K Methoden Primzahlen Java Basics - Anfänger-Themen 33
S Input/Output Primzahlen Datenbank Java Basics - Anfänger-Themen 11
F Primzahlen in Zahlenblöcken ausgeben Java Basics - Anfänger-Themen 9
M Primzahlen - es werden alle Nicht-Primzahlen ausgegeben Java Basics - Anfänger-Themen 5
M primzahlen Java Basics - Anfänger-Themen 4
S Programm zu Ermittlung von Primzahlen Java Basics - Anfänger-Themen 14
E Programm zum Primzahlen ausgeben-Fehler Java Basics - Anfänger-Themen 12
X Primzahlen Java Basics - Anfänger-Themen 7
S Primzahlen Java Basics - Anfänger-Themen 12
B Programmierobjekt - Primzahlen Java Basics - Anfänger-Themen 2
D Primzahlen ausgeben. Wo liegt der Fehler? Java Basics - Anfänger-Themen 4
N Primzahlen Java Basics - Anfänger-Themen 5
I Primzahlen check, String prüfen lassen. Java Basics - Anfänger-Themen 6
A OOP Programm zum bestimmen von Primzahlen, OutofBoundsException Java Basics - Anfänger-Themen 10
apple987123 Primzahlen Java Basics - Anfänger-Themen 12
T Primzahlen Java Basics - Anfänger-Themen 6
G Primzahlen Java Basics - Anfänger-Themen 18
B Primzahlen berechnen - Wieso unterschiedliche Java Basics - Anfänger-Themen 3
B Primzahlen Algorithmus - wo ist der Fehler ? Java Basics - Anfänger-Themen 2
E Primzahlen Java Basics - Anfänger-Themen 5
B Primzahlen mit Array errechnen! Java Basics - Anfänger-Themen 13
H Miller Rabin Test Primzahlen werden teilweise nicht gefunden Java Basics - Anfänger-Themen 5
M Wer kann mir bei Primzahlen helfen ? Java Basics - Anfänger-Themen 4
G Frage zur Primzahlen berechnung Java Basics - Anfänger-Themen 11
kulturfenster Primzahlen berechnen Java Basics - Anfänger-Themen 11
D Primzahlen Java Basics - Anfänger-Themen 4
N Zerlegung in Primzahlen Java Basics - Anfänger-Themen 7
F Programm Primzahlen Java Basics - Anfänger-Themen 5
J Primzahlen errechnen.ArrayLists abgleichen Java Basics - Anfänger-Themen 2
M Primzahlen Java Basics - Anfänger-Themen 6
C Primzahlen Java Basics - Anfänger-Themen 7
C Primzahlen Java Basics - Anfänger-Themen 2
S Primzahlen Java Basics - Anfänger-Themen 49
B Java ist / wird kostenpflichtig. Ein paar Fragen Java Basics - Anfänger-Themen 1
G Ein paar Anfänger Fragen zu StdDraw Java Basics - Anfänger-Themen 4
P Erste Schritte Bitte ein paar Erklärungen zu meinem Code Java Basics - Anfänger-Themen 6
Azazel Ein paar Fragen zu Methodenaufrufen(java.awt) Java Basics - Anfänger-Themen 2
S Integer/Value-Paar in Prio-Queue ohne Comparator Java Basics - Anfänger-Themen 5
T Ein paar Fragen zu OOP und Java. Java Basics - Anfänger-Themen 16
D Bild für ein paar Sekunden einblenden und wieder ausblenden Java Basics - Anfänger-Themen 1
M Paar Probleme mit 3 Klassen Java Basics - Anfänger-Themen 23
C Array - Ein paar Verständnisfragen Java Basics - Anfänger-Themen 9
K BufferedWriter schreibt die letzten paar Zeilen nicht Java Basics - Anfänger-Themen 5
K Java Anfänger und paar Fragen=D Java Basics - Anfänger-Themen 7
J Paar Fragen zu Exceptions Java Basics - Anfänger-Themen 16
I Ein paar Kleinigkeiten Java Basics - Anfänger-Themen 11
C Umsteiger hat noch ein paar Fragen Java Basics - Anfänger-Themen 11
StrikeTom Ein paar(2) Fragen zu throws und try + catch Java Basics - Anfänger-Themen 6
Luk10 Datentypen Werte-Paar Java Basics - Anfänger-Themen 4
B Paar kleine Grundsatzfragen zu Java Java Basics - Anfänger-Themen 5
Nicer ! Problem nach paar Bierchen erkannt aber nicht gebannt ! Java Basics - Anfänger-Themen 7
I Ein paar Syntaxfragen... Java Basics - Anfänger-Themen 3
T ein paar fragen Java Basics - Anfänger-Themen 10
D Arrays und paar Möglichkeiten mit denen Java Basics - Anfänger-Themen 3
Antoras Ein paar theoretische Fragen Java Basics - Anfänger-Themen 19
G Brauche ein paar erklärungen zu Quelltext Java Basics - Anfänger-Themen 5
A paar bilder auf einmal Java Basics - Anfänger-Themen 3
A Paar Fragen zu Applet u.a. Java Basics - Anfänger-Themen 2
R Strings und dazu ein paar methoden Java Basics - Anfänger-Themen 12
A taschenrechner mit radioButtons aber ein paar problemen Java Basics - Anfänger-Themen 5
0x7F800000 Ein paar noob-fragen zu java ME Java Basics - Anfänger-Themen 5
G Threads brauche da gilfe für paar fragen Java Basics - Anfänger-Themen 5
V Könnt ihr mal über Paar antworten schauen(Hausaufgaben) Java Basics - Anfänger-Themen 7
S ein paar kleine Fragen Java Basics - Anfänger-Themen 4
G Hoffe jemand kann mir ein paar Tips geben:binärer Suchbaum Java Basics - Anfänger-Themen 3
R Noch ein paar Anfängerfragen. Java Basics - Anfänger-Themen 4
N ein paar L&F Fragen Java Basics - Anfänger-Themen 7
S Ein paar Anfängerfragen Java Basics - Anfänger-Themen 17
S ein paar Fragen - mit KSKB Java Basics - Anfänger-Themen 16

Ähnliche Java Themen

Neue Themen


Oben