aboutsummaryrefslogtreecommitdiff
path: root/sem5/oop/m2/primes/src/PrimeGen.java
diff options
context:
space:
mode:
Diffstat (limited to 'sem5/oop/m2/primes/src/PrimeGen.java')
-rw-r--r--sem5/oop/m2/primes/src/PrimeGen.java40
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);
+ }
+
+}