Primzahlen bis 100 in Java mit while schleife?
wie soll das funktionieren?
5 Antworten
![](https://images.gutefrage.net/media/user/davegarten/1635518465011_nmmslarge__0_0_160_160_7f828fad18ee7edb96b8daceedaeeadb.png?v=1635518465000)
for (int i = 1; i <= 100; i++) {
boolean prim = true;
// widerlegen, dass es sich um eine primzahl handelt
for (int j = 2; j < i; j++) {
if (i % j == 0) {
prim = false;
break;
}
}
// falls doch prim, dann ausgeben
if (prim) {
System.out.println(i);
}
}
![](https://images.gutefrage.net/media/user/Waldmensch70/1566995865893_nmmslarge__33_33_1444_1444_6b7b2a0394a1ab07627b0b610ef18c2d.jpg?v=1566995866000)
Von gutefrage auf Grund seines Wissens auf einem Fachgebiet ausgezeichneter Nutzer
Computer
Zu prüfende Zahl ist gleich 1.
Solange die zu prüfende Zahl kleiner oder gleich 100 ist:
Prüfe ob es sich um eine Primzahl handelt,
wenn ja gebe die Zahl aus,
sonst mache nichts.
Erhöhe die zu prüfende Zahl um 1.
Schleifen-Ende.
Das musst Du jetzt nur noch in Java übersetzen...
Woher ich das weiß:Studium / Ausbildung – Ich bin seit über 30 Jahren in der IT tätig.
![](https://images.gutefrage.net/media/default/user/6_nmmslarge.png?v=1438863662000)
boolean arr[] = new boolean[100];
for(int i=1;i<100;++)arr[i]=true;
arr[0]=false;
// Variante 1:
for(int i=2;i<100;++i)
for(int j=i;j<100;j++)
if(i*j<101)arr[i*j-1]=false;
// Variante 2:
int c=0;
for(int i=0;i<100;++i)
for(int j=2;j<10;j++){
c=(int)((i+1)/j)
if(c*j==i+1)arr[i]=false;
}
// Ausgabe
for(int i=0;i<100;++i)if(arr[i])System.out.println(i+1);
Woher ich das weiß:eigene Erfahrung – Hobby und teilweise beruflich
![](https://images.gutefrage.net/media/default/user/6_nmmslarge.png?v=1438863662000)
![](https://images.gutefrage.net/media/default/user/9_nmmslarge.png?v=1551279448000)
Einfach überprüfen ob die Zahl nur durch sich selbst teilbar ist und immer die ganze Reihe die zu trifft ausklammern. Z. B. 2 ist nur durch sich selbst teilbar also 2, 4, 6...98, 100 brauchst du nicht mehr zu überprüfen.
![](https://images.gutefrage.net/media/default/user/9_nmmslarge.png?v=1551279448000)
Von gutefrage auf Grund seines Wissens auf einem Fachgebiet ausgezeichneter Nutzer
Computer
Schau das an wie man es Mathematisch berechnet, dann weißt du's ;). Tipp: Modulo
arr[...] anstatt arr(...)