Primzahlen bis 100 in Java mit while schleife?
wie soll das funktionieren?
5 Antworten
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);
}
}
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.
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
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.
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(...)