Primzahlen bis 100 in Java mit while schleife?

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);
  }

}


  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.

Schau das an wie man es Mathematisch berechnet, dann weißt du's ;). Tipp: Modulo