Advertisement
timdebuyst

PriemGetallenCallable.java

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