UNPKG

lazzy.ts

Version:

Fast and lightweight library for lazy operations with iterable objects.

44 lines 1.04 kB
"use strict"; 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