lazzy.ts
Version:
Fast and lightweight library for lazy operations with iterable objects.
44 lines • 1.04 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.isPrime = exports.prime = void 0;
function* prime(minimum) {
let i;
if (minimum == null) {
yield 2;
i = 3;
}
else {
i = minimum % 2 === 0 ? minimum + 1 : minimum;
}
while (true) {
if (!Number.isSafeInteger(i)) {
return;
}
if (isPrime(i)) {
const reply = yield i;
if (reply !== undefined) {
i = (reply % 2 === 0 ? reply + 1 : reply) - 2;
}
}
i += 2;
}
}
exports.prime = prime;
function isPrime(number) {
if (number <= 3) {
return number > 1;
}
if (number % 2 === 0 || number % 3 === 0) {
return false;
}
let count = 5;
while (Math.pow(count, 2) <= number) {
if (number % count === 0 || number % (count + 2) === 0) {
return false;
}
count += 6;
}
return true;
}
exports.isPrime = isPrime;
//# sourceMappingURL=prime.js.map