Неправильно выводятся простые числа

Здраствуйте, у меня задание Создать программу, которая находила бы простые числа. Число считается простым, если оно делится только на 1 и на самое себя. Количество найденных простых чисел ограничить числом, введенным с клавиатуры. Я написал код, вроде все выводится как надо, но при выводе простых чисел у меня сначала выводится непарное число, потом после него парное и только после этого идут только непарные. Не понимаю в чем проблема Приклепляю код:

import java.util.Scanner;
public class Task6 {
        
    public static boolean isPrime(int x) {
        for (int i = 2; i < x; i++) {
            if(x % i == 0) {
                return false;
            }
        }
        return true;
    }
        
    public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    System.out.print("Введите число: ");
    int n = sc.nextInt();
    System.out.print("Список простых чисел: ");
    for(int x = 1; x <= n; x++) {
        if(isPrime(x)) {
            System.out.print(x + " ");
        }
    }
    }

}

Пример результата Введите число: 13 Список простых чисел: 1 2 3 5 7 11 13


Ответы (1 шт):

Автор решения: Труфальдино
  1. Сначала проверьте, что все вводимые числа не четные.
  2. Затем используйте метод класса BigInteger - isProbablePrime
  3. потом используйте Stream,опционально
    public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    System.out.print("Введите число: ");
    int n = sc.nextInt();
     System.out.print("Список простых чисел: ");
    BigInteger bi ; 
       for(int x = 1; x <= n; x++) {
            if (x % 2 !=0) {
              bi = BigInteger.valueOf(x);
    System.out.print(x + "  is Prime := " +bi.isProbablePrime(х) );
        }
      } 
     }
   } 
→ Ссылка