Primzahl mit Angabe der höchsten Primzahl und Angabe der Anzahl von Primzahlen bis 100

P

Panda9296

Bekanntes Mitglied
Kann man das so lassen? Geht um die Anzahl, da es 25 sind, habe allerdings 26 und müsste dies eigentlich -1 nehmen... dann passt es... gibt es bessere bzw schönere Lösungen?
Code:
void taskTwo() {
        
        int i=1;
        int betweenSave=0;
        int numberOfPrime=0;
        boolean prime =true;
        while(i<=100) {
            for(int j =2;j<i-1;j++) {
                if(i%j==0) {
                    prime=false;
                }
            }if(prime&&i>betweenSave) {
                
                betweenSave=i;
                numberOfPrime++;
            }else {
                prime=true;
            }i++;
        }System.out.println("Die größte Primzahl von 1-100: "+betweenSave);
        System.out.println("Die Anzahl der Primzahlen von 1-100 ist: "+(numberOfPrime-1));
        System.out.println();
    }
 
kneitzel

kneitzel

Top Contributor
Bitte räume Deinen Code auf.

a) Deine While Schleife ist eine übliche Zählschleife - da macht also eine for Schleife mehr Sinn als eine while Schleife.
b) Wozu hast Du die Variable betweenSave?

Und wenn die 1 keine Primzahl ist (Du prüfst das ja nicht), dann kannst Du auch die Schleife bei 2 loslaufen lassen. Du setzt da mit Deinem Wissen etwas voraus so dass Du die Zahl nicht prüfst.

Wenn das wirklich so ist, dass Du alle Zahlen ab 1 prüfen sollst, dann zähl einfach die Teiler.
Primzahl ist nur durch 1 und sich selbst teilbar. Also zählst Du die Anzahl der Teiler und nur wenn dies <=2 ist, dann ist es eine Primzahl.

Aber der Code macht so wenig Sinn, denn die Optimierung ist nun einmal:
a) Anfang bei 2
b) Ende der Überprüfung bei Wurzel der Zahl - Bei 12 macht es einfach keinen Sinn, weiter als 3 zu prüfen, denn 4*4 ist bereits 16. Und wenn es durch 4 teilbar ist, dann hast Du das schon ermittelt (hier bei der 3)
c) Und sobald Du einen Teiler hast, brichst du ab. Also bei der 12 um bei dem Beispiel zu bleiben: Ist durch 2 teilbar, also keine Primzahl. Die 3 und 4 muss ich nicht mehr prüfen!
 
kneitzel

kneitzel

Top Contributor
Ah, ok. Also ist das die maxPrimzahlFound - Dann versteht man den Code gleich besser wenn man sprechende Namen verwendet.
 
T

TM69

Bekanntes Mitglied
Kann man das so lassen? Geht um die Anzahl, da es 25 sind, habe allerdings 26 und müsste dies eigentlich -1 nehmen... dann passt es... gibt es bessere bzw schönere Lösungen?
Code:
void taskTwo() {
       
        int i=1;
        int betweenSave=0;
        int numberOfPrime=0;
        boolean prime =true;
        while(i<=100) {
            for(int j =2;j<i-1;j++) {
                if(i%j==0) {
                    prime=false;
                }
            }if(prime&&i>betweenSave) {
               
                betweenSave=i;
                numberOfPrime++;
            }else {
                prime=true;
            }i++;
        }System.out.println("Die größte Primzahl von 1-100: "+betweenSave);
        System.out.println("Die Anzahl der Primzahlen von 1-100 ist: "+(numberOfPrime-1));
        System.out.println();
    }
Such doch einfach mal nach dem Sieb von Eratosthenes.
Eins der ersten Ergebnisse erbracht bei mir:
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
C Ganzzahlige Werte in Boolean ausgeben und überprüfen ob Primzahl oder nicht, wenn es keine Primzahl ist soll es die Primfaktorzerlegung ausgeben Java Basics - Anfänger-Themen 4
O Primzahl rekursiv mit einem Wert ohne i, wie? Java Basics - Anfänger-Themen 6
O Erste Schritte Primzahl Methode Java Basics - Anfänger-Themen 8
I Erste Schritte Testen, ob eine Zahl eine Primzahl ist Java Basics - Anfänger-Themen 8
O Primzahl bis n Java Basics - Anfänger-Themen 5
D Primzahl Aufgabe Java Basics - Anfänger-Themen 5
R Primzahl ja/nein - besserer Code möglich? Java Basics - Anfänger-Themen 2
T Primzahl Java Basics - Anfänger-Themen 12
I Höchste Zahl berechnen die eine Eingabe ohne Rest teilt und eine Primzahl ist Java Basics - Anfänger-Themen 2
U Primzahl-Tester Java Basics - Anfänger-Themen 3
A 10001-te Primzahl herausfinden Java Basics - Anfänger-Themen 5
L primzahl Java Basics - Anfänger-Themen 54
R Primzahl kleiner 3 Java Basics - Anfänger-Themen 2
T Primzahl Schleife Java Basics - Anfänger-Themen 15
X Primzahl Ausgabe falsch Java Basics - Anfänger-Themen 10
M Primzahl Java Basics - Anfänger-Themen 11
D Array Fehler / groesste Primzahl suchen Java Basics - Anfänger-Themen 4
F Primzahl oder nicht?! Java Basics - Anfänger-Themen 7
S Primzahl in einem Array finden Java Basics - Anfänger-Themen 21
J Primzahl mit for Schleife Java Basics - Anfänger-Themen 4
A Fehler im Primzahl Programm Java Basics - Anfänger-Themen 17
S Primzahl berechnen in Java Java Basics - Anfänger-Themen 7
K Primzahl//immer true Java Basics - Anfänger-Themen 7
ven000m Primzahl.class wie starte ich diese einzelne Datei? Java Basics - Anfänger-Themen 10
M Primzahl Java Basics - Anfänger-Themen 8
W Nächstgelegene Primzahl Java Basics - Anfänger-Themen 3
I Primzahl suchen Java Basics - Anfänger-Themen 5
G primzahl oder nicht? Java Basics - Anfänger-Themen 16
G Palindromtest mit Angabe WO der Fehler ist Java Basics - Anfänger-Themen 2
F Arrays Sätze speichern und einzelne Worte mit Index Angabe auslesen Java Basics - Anfänger-Themen 4
E Datums Angabe Java Basics - Anfänger-Themen 5
P Methoden Reflections: getMethod()-aufrufen ohne Parameter-Angabe Java Basics - Anfänger-Themen 5
L Polymorphie <identifier> expected trotz "Angabe" Java Basics - Anfänger-Themen 2
H Log4J und Angabe eines Ordners Java Basics - Anfänger-Themen 5
M Pfad angabe bei getRescource und ImageIO.write Java Basics - Anfänger-Themen 4
N Verzeichnisstruktur und Pfad Angabe Java Basics - Anfänger-Themen 2
M Runtime exec mit Ordner angabe Java Basics - Anfänger-Themen 7
S Applet: Code-Angabe Java Basics - Anfänger-Themen 3
G Problem bei der Angabe von Attributen in einer Objekt-Klasse Java Basics - Anfänger-Themen 3
R JList + Pfad angabe Java Basics - Anfänger-Themen 21
B Angabe import-Verzeichnis & Error704:cannot access direc Java Basics - Anfänger-Themen 6
C Datei mit Daten einlesen und höchsten wert der zweiten Spalte ermitteln Java Basics - Anfänger-Themen 1
P Anordnen der höchsten int in einem int[] Java Basics - Anfänger-Themen 16
B Datentypen Werte in einen Array einlesen und danach die beiden höchsten Werte wieder ausgeben Java Basics - Anfänger-Themen 3
H Höchsten int-Wert(key) aus einer Hashmap suchen Java Basics - Anfänger-Themen 19
J Wie kann ich den höchsten Wert eines Arrays ermitteln? Java Basics - Anfänger-Themen 17

Ähnliche Java Themen


Oben