Advertisement
Guest User

Untitled

a guest
Nov 17th, 2018
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.39 KB | None | 0 0
  1. //01151424 David Karasz
  2.  
  3. public class Bsp06 {
  4.  
  5.  
  6.     public static void main(String[] args) {
  7.         System.out.println("Alle Primzahlen in [m, n]");
  8.         System.out.print("m: ");
  9.         int m = SavitchIn.readInt();
  10.         System.out.println();
  11.         System.out.print("n: ");
  12.         int n = SavitchIn.readInt();
  13.         System.out.println();
  14.         System.out.println(String.format("Alle Primzahlen in [%d, %d]:", m, n));
  15.  
  16.  
  17.         boolean[] primes = findPrimes(m, n);
  18.         int primesCount = printPrimes(primes, m);
  19.         System.out.println("Insgesamt " + primesCount + " Primzahlen.");
  20.        
  21.         System.out.println();
  22.         System.out.println("Sieb des Eratosthenes:");
  23.         System.out.println(String.format("Alle Primzahlen in [%d, %d]:", m, n));  
  24.         boolean[] Eratos = sieveOfEratosthenes(n, 0);
  25.         int primesEratos = printPrimes(Eratos, m);
  26.         System.out.println("Insgesamt " + primesEratos + " Primzahlen.");
  27.  
  28.        
  29.      }
  30.  
  31.    
  32.  
  33.     public static boolean isPrime(int n) {
  34.            //ueberprueft ob n eine Primzahl ist
  35.               int k = 2;  
  36.                  
  37.               while((k <= n) && (n%k != 0) && (n > 1))
  38.                  k++;
  39.              
  40.               return k == n;
  41.            }
  42.    
  43.  
  44.     public static boolean[] findPrimes(int m, int n) {
  45.         if (n < m) return null;
  46.         int size = n - m + 1;
  47.         boolean[] primes = new boolean[size];
  48.         for (int i = m; i <= n; i++) {
  49.             primes[i - m] = isPrime(i);
  50.         }
  51.         return primes;
  52.     }
  53.  
  54.     public static int printPrimes(boolean[] foundPrimes, int m) {
  55.         int primes = 0;
  56.         for (int i = 0; i < foundPrimes.length; i++) {
  57.             if (foundPrimes[i]) {
  58.                 System.out.print(m + i + " ");
  59.                 primes++;
  60.             }
  61.         }
  62.         System.out.println();
  63.         return primes;
  64.     }
  65.  
  66.     public static boolean [] sieveOfEratosthenes(int n, int m){
  67.         boolean [] b = new boolean [n+1];          
  68.         if (n == 0)
  69.            b[0] = false;
  70.         if (n == 1)
  71.            b[1] = false;
  72.        
  73.         for(int i = 0; m <= n; i++, m++){  //m = 0, Werte der Arrays fangen bei 0 an
  74.            b[i] = isPrime(m);
  75.            if(isPrime(m) == true){
  76.               for(int x = 2; x <= n/i; x++){
  77.                  b[i * x] = false;
  78.               }
  79.            }
  80.         }
  81.  
  82.         return b;
  83.      }
  84.  
  85. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement