diff options
| author | David Ferrone <zapwai@gmail.com> | 2024-03-15 11:21:15 -0400 |
|---|---|---|
| committer | David Ferrone <zapwai@gmail.com> | 2024-03-15 11:21:15 -0400 |
| commit | 60c68b3209b3c09d3cbd29b4ef33080546a43fbd (patch) | |
| tree | 48d43fa4f9c8ea2492e7ab11146b7df7bb1a1679 /challenge-012/zapwai/javascript | |
| parent | 2a68a16c1d8727b183d85c88f31ae6cec6a869b1 (diff) | |
| download | perlweeklychallenge-club-60c68b3209b3c09d3cbd29b4ef33080546a43fbd.tar.gz perlweeklychallenge-club-60c68b3209b3c09d3cbd29b4ef33080546a43fbd.tar.bz2 perlweeklychallenge-club-60c68b3209b3c09d3cbd29b4ef33080546a43fbd.zip | |
Weekly Challenge Blast from the Past
Diffstat (limited to 'challenge-012/zapwai/javascript')
| -rw-r--r-- | challenge-012/zapwai/javascript/ch-1.js | 49 | ||||
| -rw-r--r-- | challenge-012/zapwai/javascript/ch-2.js | 23 |
2 files changed, 72 insertions, 0 deletions
diff --git a/challenge-012/zapwai/javascript/ch-1.js b/challenge-012/zapwai/javascript/ch-1.js new file mode 100644 index 0000000000..f16531410b --- /dev/null +++ b/challenge-012/zapwai/javascript/ch-1.js @@ -0,0 +1,49 @@ +let primes = [2]; + +function is_prime(num) { + for (let p of primes) { + if (p < num) { + if (num % p == 0) + return false; + } + else { + break; + } + } + return true; +} + +function primorial(n) { + let p = 1; + while (n > 0) { + n--; + p *= primes[n]; + } + return p; +} + +function fill_primes(num) { + let i = 2; + while (primes[primes.length-1] < num) { + i++; + let cnt = 0; + for (let j = 0; j < primes.length; j++) { + if (i % primes[j] == 0) + cnt++; + } + if (cnt == 0) + primes.push(i); + } +} + +function euclid(i) { + return 1 + primorial(i); +} + +fill_primes(15000); +for (let i = 2; i < 8; i++) { + if (!(is_prime(euclid(i)))) { + console.log(euclid(i)); + break; + } +} diff --git a/challenge-012/zapwai/javascript/ch-2.js b/challenge-012/zapwai/javascript/ch-2.js new file mode 100644 index 0000000000..fecd56d950 --- /dev/null +++ b/challenge-012/zapwai/javascript/ch-2.js @@ -0,0 +1,23 @@ +let input = `/a/b/c/d +/a/b/cd +/a/b/cc +/a/b/c/d/e`; + +function proc(input) { + let line = input.split("\n"); + let prefix = line[0]; + let cnt = 1; + while (cnt > 0) { + cnt = 0; + prefix = prefix.slice(0,prefix.lastIndexOf("/")); + for (let i = 0; i < line.length; i++) { + let pattern = new RegExp("^"+prefix+"/"); + if (!pattern.test(line[i])) { + cnt++; + } + } + } + return prefix; +} + +console.log(proc(input)) |
