diff options
Diffstat (limited to 'sem5/oop/m2/primes/src/PrimeGen.java')
-rw-r--r-- | sem5/oop/m2/primes/src/PrimeGen.java | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/sem5/oop/m2/primes/src/PrimeGen.java b/sem5/oop/m2/primes/src/PrimeGen.java new file mode 100644 index 0000000..9c91645 --- /dev/null +++ b/sem5/oop/m2/primes/src/PrimeGen.java @@ -0,0 +1,40 @@ +import java.io.PrintStream; +import java.util.ArrayList; + +public class PrimeGen { + + private ArrayList<Integer> primes; + private int at; + + public PrimeGen() { + this.primes = new ArrayList<>(); + + this.at = 1; + } + + public int next(int limit) { + // Run until a prime + primeloop: + while (true) { + this.at++; + if (this.at >= limit) { + return -1; + } + + for (int prime : this.primes) { + if (this.at % prime == 0) { + continue primeloop; + } + } + break; + } + + this.primes.add(at); + return at; + } + + public int next() { + return next(-1); + } + +} |