Write a program that program that generate first 10 prime number by using iterator
Program/Code:
Num Class -> Prime_Gen:
Program/Code:
Num Class -> Prime_Gen:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 | import java.util.ArrayList; import java.util.Iterator; public class num { public static Iterator iterator() { return new prime_Gen(); } private static class prime_Gen implements Iterator<Object> { private final ArrayList<Integer> arr; private int p; public prime_Gen() { this.arr = new ArrayList<>(); this.p = 2; } @Override public boolean hasNext() { return true; } @Override public Object next() { if (p == 2) { p = 3; arr.add(2); return 2; } for (int n = p; true; n += 2) { for (int i = 0; i < arr.size(); i++) { int e1 = (int) arr.get(i); if (n % e1 == 0) { break; } if (e1 * e1 > n) { arr.add(n); p = n + 2; return n; } } } } @Override public void remove() { throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. } } } |
Test class:
1 2 3 4 5 6 7 8 9 10 11 12 13 | package iterator; import java.util.Iterator; public class test { public static void main(String[] args) { Iterator it = num.iterator(); for(int i = 0; i<10 && it.hasNext(); i++){ System.out.println(it.next()); } } } |
Result/Run:
2 3 5 7 11 13 17 19 23 29
No comments:
Post a Comment