fork download
  1. import java.util.ArrayList;
  2. import java.util.List;
  3.  
  4. public class Main {
  5.  
  6. // Function to find all prime numbers up to n using the Sieve of Eratosthenes
  7. public static List<Integer> sieve(int n) {
  8. boolean[] prime = new boolean[n + 1];
  9. for (int i = 0; i <= n; i++) {
  10. prime[i] = true;
  11. }
  12. prime[0] = false;
  13. prime[1] = false;
  14.  
  15. int limit = (int) Math.sqrt(n);
  16. for (int p = 2; p <= limit; p++) {
  17. if (prime[p]) {
  18. for (int i = p * p; i <= n; i += p) {
  19. prime[i] = false;
  20. }
  21. }
  22. }
  23.  
  24. List<Integer> primes = new ArrayList<>();
  25. for (int i = 0; i <= n; i++) {
  26. if (prime[i]) {
  27. primes.add(i);
  28. }
  29. }
  30. return primes;
  31. }
  32.  
  33. // Function to find primes in a range [start, end] using a segmented sieve
  34. public static List<Integer> sieveRange(int start, int end) {
  35. List<Integer> primes = sieve(end);
  36. List<Integer> rangePrimes = new ArrayList<>();
  37.  
  38. for (int prime : primes) {
  39. if (prime >= start) {
  40. rangePrimes.add(prime);
  41. }
  42. }
  43.  
  44. return rangePrimes;
  45. }
  46.  
  47. public static void main(String[] args) {
  48. int l = 1;
  49. int r = 100;
  50. List<Integer> primesInRange = sieveRange(l, r);
  51.  
  52.  
  53. for (int prime : primesInRange) {
  54. System.out.println(prime);
  55. }
  56. }
  57. }
  58.  
Success #stdin #stdout 0.1s 52624KB
stdin
Standard input is empty
stdout
2
3
5
7
11
13
17
19
23
29
31
37
41
43
47
53
59
61
67
71
73
79
83
89
97