diff options
| author | Elizabeth Alexander Hunt <me@liz.coffee> | 2026-07-05 12:42:44 -0700 |
|---|---|---|
| committer | Elizabeth Alexander Hunt <me@liz.coffee> | 2026-07-05 12:42:44 -0700 |
| commit | 94b912b649150b9863a62096ba4740b2cc8ad21a (patch) | |
| tree | 1882236fc980fa5946d3089a2f2e4670f3a70580 /src/toys/godel/js/godel-worker.js | |
| parent | ab0ddcaeb1fc37351d14b89100e07d3a343ba9e1 (diff) | |
| download | lizdotcoffee-94b912b649150b9863a62096ba4740b2cc8ad21a.tar.gz lizdotcoffee-94b912b649150b9863a62096ba4740b2cc8ad21a.zip | |
Factor
Diffstat (limited to 'src/toys/godel/js/godel-worker.js')
| -rw-r--r-- | src/toys/godel/js/godel-worker.js | 42 |
1 files changed, 0 insertions, 42 deletions
diff --git a/src/toys/godel/js/godel-worker.js b/src/toys/godel/js/godel-worker.js deleted file mode 100644 index 1ba9da4..0000000 --- a/src/toys/godel/js/godel-worker.js +++ /dev/null @@ -1,42 +0,0 @@ -const isPrime = (n) => { - if (n < 2) { - return false; - } - if (n === 2) { - return true; - } - if (n % 2 === 0) { - return false; - } - const limit = Math.floor(Math.sqrt(n)); - for (let i = 3; i <= limit; i += 2) { - if (n % i === 0) { - return false; - } - } - return true; -}; - -const primes = [2]; -const primeAt = (index) => { - while (primes.length < index) { - let candidate = primes[primes.length - 1] + 1; - while (!isPrime(candidate)) { - candidate += 1; - } - primes.push(candidate); - } - return primes[index - 1]; -}; - -const computeGodelNumber = (sequence) => { - return sequence.reduce((acc, exponent, idx) => { - const prime = BigInt(primeAt(idx + 1)); - return acc * prime ** BigInt(exponent); - }, BigInt(1)) - BigInt(1); -}; - -self.addEventListener("message", (event) => { - const result = computeGodelNumber(event.data); - self.postMessage(result.toString()); -}); |
