public class PrimeNumber {
  public static void main(String[] args) {
    final int NUMBER_OF_PRIMES = 50; // Liczba wyświetlanych liczb pierwszych
    final int NUMBER_OF_PRIMES_PER_LINE = 10; // Po 10 na wiersz
    int count = 0; // Licznik znalezionych liczb pierwszych
    int number = 2; // Liczba sprawdzana, czy jest pierwsza

    System.out.println("Początkowych 50 liczb pierwszych to: \n");

    // Wielokrotne wyszukiwanie liczb pierwszych
    while (count < NUMBER_OF_PRIMES) {
      // Zakładamy, że liczba jest pierwsza
      boolean isPrime = true; // Czy badana liczba jest pierwsza?

      // Sprawdzanie, czy liczba jest pierwsza
      for (int divisor = 2; divisor <= number / 2; divisor++) {
        if (number % divisor == 0) { // Jeśli true, liczba nie jest pierwsza
          isPrime = false; // Ustawianie isPrime na false
          break; // Wyjście z pętli
        }
      }

      // Wyświetlanie liczby pierwszej i zwiększanie wartości licznika
      if (isPrime) {
        count++; // Zwiększanie wartości licznika

        if (count % NUMBER_OF_PRIMES_PER_LINE == 0) {
          // Wyświetlanie liczby i przechodzenie do nowego wiersza
          System.out.println(number);
        }
        else
          System.out.print(number + " ");
      }

      // Sprawdzanie, czy następna liczba jest pierwsza
      number++;
    }
  }
}
