import java.util.Iterator;
final class Ideone {
private static Iterable<Integer> primes(final int n) {
final boolean[] composite = new boolean[n+1];
for (int i = 2; i <= n; ++i) {
if (!composite[i]) {
for (int j = i * i; j <= n; j += i) {
composite[j] = true;
}
}
}
return new Iterable<Integer>() {
public Iterator<Integer> iterator() {
return new Iterator<Integer>() {
int cur = 1;
while (cur <= n && composite[cur++]) ;
return cur - 1;
}
public boolean hasNext() {
int p = cur;
while (p <= n && composite[p++]) ;
return p <= n;
}
};
}
};
}
public static void main
(final String[] argv
) { for (final int p : primes(100)) {
}
}
}
aW1wb3J0IGphdmEudXRpbC5JdGVyYXRvcjsKCmZpbmFsIGNsYXNzIElkZW9uZSB7CgogIHByaXZhdGUgc3RhdGljIEl0ZXJhYmxlPEludGVnZXI+IHByaW1lcyhmaW5hbCBpbnQgbikgewogICAgZmluYWwgYm9vbGVhbltdIGNvbXBvc2l0ZSA9IG5ldyBib29sZWFuW24rMV07CiAgICBmb3IgKGludCBpID0gMjsgaSA8PSBuOyArK2kpIHsKICAgICAgaWYgKCFjb21wb3NpdGVbaV0pIHsKICAgICAgICBmb3IgKGludCBqID0gaSAqIGk7IGogPD0gbjsgaiArPSBpKSB7CiAgICAgICAgICBjb21wb3NpdGVbal0gPSB0cnVlOwogICAgICAgIH0KICAgICAgfQogICAgfQogICAgcmV0dXJuIG5ldyBJdGVyYWJsZTxJbnRlZ2VyPigpIHsKICAKICAgICAgcHVibGljIEl0ZXJhdG9yPEludGVnZXI+IGl0ZXJhdG9yKCkgewogICAgICAgIHJldHVybiBuZXcgSXRlcmF0b3I8SW50ZWdlcj4oKSB7CiAgICAgICAgICBpbnQgY3VyID0gMTsKICAgICAgICAgIAogICAgICAgICAgcHVibGljIEludGVnZXIgbmV4dCgpIHsKICAgICAgICAgICAgd2hpbGUgKGN1ciA8PSBuICYmIGNvbXBvc2l0ZVtjdXIrK10pIDsKICAgICAgICAgICAgcmV0dXJuIGN1ciAtIDE7CiAgICAgICAgICB9CiAgICAgICAgICAKICAgICAgICAgIHB1YmxpYyBib29sZWFuIGhhc05leHQoKSB7CiAgICAgICAgICAJaW50IHAgPSBjdXI7CiAgICAgICAgICAJd2hpbGUgKHAgPD0gbiAmJiBjb21wb3NpdGVbcCsrXSkgOwogICAgICAgICAgCXJldHVybiBwIDw9IG47CiAgICAgICAgICB9CiAgICAgICAgfTsKICAgICAgfQogICAgfTsKICB9CQogIAogIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKGZpbmFsIFN0cmluZ1tdIGFyZ3YpIHsKICAgIGZvciAoZmluYWwgaW50IHAgOiBwcmltZXMoMTAwKSkgewogICAgCVN5c3RlbS5vdXQucHJpbnRsbihwKTsKICAgIH0KICB9Cn0=