Advertisement
timdebuyst

PriemGetallenRunnable.java

Mar 14th, 2019
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.40 KB | None | 0 0
  1. package hfdst4;
  2. import java.util.*;
  3. import java.util.concurrent.*;
  4.  
  5. class PriemZoekerRunnable implements Runnable {
  6.     protected int start,einde;
  7.     protected ArrayList<Integer> r;
  8.     public PriemZoekerRunnable(int start, int einde, ArrayList<Integer> r) {
  9.         this.start = start;
  10.         this.einde = einde;
  11.         this.r = r;
  12.         System.out.println("Priemdraad: #"+start+" -> "+ einde+" aangemaakt !");
  13.     }
  14.     @Override
  15.     public void run() {
  16.         for (int n = start; n <= einde; n++) {
  17.             if (n >= 2) {
  18.                 boolean flag = true;
  19.                 for (int i = 2; i <= Math.sqrt(n); i++) {
  20.                     if (n%i == 0) {
  21.                         flag = false;
  22.                         break;
  23.                     }
  24.                 }
  25.                 if (flag == true) {
  26.                     // System.out.println("Priemgetal: " + n);
  27.                     r.add(n);
  28.                 }
  29.             }
  30.         }
  31.     }
  32. }
  33.  
  34. class TestPriemRunnable {
  35.     public static void main(String[] args) {
  36.         int N = 1000;
  37.         int nTaken = 10;
  38.         int interval = N/nTaken;
  39.         ArrayList[] list = new ArrayList[nTaken];
  40.         ExecutorService e = Executors.newFixedThreadPool(nTaken);
  41.        
  42.         for (int i = 0; i < nTaken; i++) {
  43.             list[i] = new ArrayList();
  44.             e.execute(new PriemZoekerRunnable(i*interval, (i+1)*interval, list[i]));
  45.         }
  46.         e.shutdown();
  47.        
  48.         try {
  49.             e.awaitTermination(100, TimeUnit.SECONDS);
  50.         } catch(InterruptedException ex) {
  51.             ex.printStackTrace();
  52.         }
  53.        
  54.         for (ArrayList l : list)
  55.             System.out.println(l);
  56.        
  57.     }
  58. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement