Чтобы сгенерировать в Java все простые числа меньше заданного числа «n», вы можете использовать различные методы. Вот несколько возможных подходов:
- Решето Эратосфена:
Этот алгоритм эффективно находит все простые числа до заданного предела, итеративно отмечая кратные каждому простому числу. Вот реализация:
import java.util.*;
public class PrimeNumbers {
public static List<Integer> generatePrimes(int n) {
boolean[] isPrime = new boolean[n + 1];
Arrays.fill(isPrime, true);
isPrime[0] = isPrime[1] = false;
for (int i = 2; i * i <= n; i++) {
if (isPrime[i]) {
for (int j = i * i; j <= n; j += i) {
isPrime[j] = false;
}
}
}
List<Integer> primes = new ArrayList<>();
for (int i = 2; i <= n; i++) {
if (isPrime[i]) {
primes.add(i);
}
}
return primes;
}
public static void main(String[] args) {
int n = 100;
List<Integer> primes = generatePrimes(n);
System.out.println("Prime numbers less than " + n + ": " + primes);
}
}
- Пробное деление:
Этот метод включает проверку делимости каждого числа до квадратного корня из n. Вот реализация:
import java.util.*;
public class PrimeNumbers {
public static boolean isPrime(int num) {
if (num <= 1) {
return false;
}
for (int i = 2; i <= Math.sqrt(num); i++) {
if (num % i == 0) {
return false;
}
}
return true;
}
public static List<Integer> generatePrimes(int n) {
List<Integer> primes = new ArrayList<>();
for (int i = 2; i < n; i++) {
if (isPrime(i)) {
primes.add(i);
}
}
return primes;
}
public static void main(String[] args) {
int n = 100;
List<Integer> primes = generatePrimes(n);
System.out.println("Prime numbers less than " + n + ": " + primes);
}
}
Это всего лишь два примера методов генерации простых чисел в Java. Также доступно несколько других алгоритмов и оптимизаций. Не стесняйтесь исследовать и экспериментировать с различными подходами.