//An immutable data type to systematically iterate over the first n primes. publ
ID: 3730624 • Letter: #
Question
//An immutable data type to systematically iterate over the first n primes. public class Primes implements Iterable Integer> private final int n; I/ need first n primes // Construct an iterable Primes object given the number of primes needed public Primes (int n) // A PrimesIterator object. public Iterator iterator) Primes iterator. private class PrimesIterator implements Iterator private int count ; /I number of primes returned private int p = 2; /I current prime // Are there anymore primes left to be iterated? public boolean hasNext) f // The next prime. public Integer next)t // Remove is not supported. public void remove) // nothing to do // Is x (>= 2) prime ? private boolean isPrime (int x) for (int i = 2; 1Explanation / Answer
Below is your code: -
//An immutable data type to systematically iterate over the first n primes.
public class Primes implements Iterable<Integer> {
private final int n; // need first n primes
// Construct an iterable Primes object given the number of primes needed.
public Primes(int n) {
this.n = n;
}
// A PrimesIterator object.
public Iterator<Integer> iterator() {
return new PrimesIterator();
}
// Primes iterator.
private class PrimesIterator implements Iterator<Integer> {
private int count = 0; // number of primes returned
private int p = 2; // current prime
// Are there anymore primes left to be iterated?
public boolean hasNext() {
return count < n;
}
// The next prime.
public Integer next() {
while (!isPrime(p)) {
p = p + 1;
}
count = count + 1;
p = p + 1;
return p - 1;
}
// Remove is not supported.
public void remove() {
// nothing to do
}
// Is x (>= 2) prime?
private boolean isPrime(int x) {
for (int i = 2; i <= x / i; i++) {
if (x % i == 0) {
return false;
}
}
return true;
}
}
// Test client. [DO NOt EDIT]
public static void main(String[] args) {
int n = Integer.parseInt(args[0]);
for (int i : new Primes(n)) {
System.out.println(i);
}
}
}
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.