Неправильно выводятся простые числа
Здраствуйте, у меня задание Создать программу, которая находила бы простые числа. Число считается простым, если оно делится только на 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 шт):
Автор решения: Труфальдино
→ Ссылка
- Сначала проверьте, что все вводимые числа не четные.
- Затем используйте метод класса BigInteger - isProbablePrime
- потом используйте 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(х) );
}
}
}
}