aboutsummaryrefslogtreecommitdiff
path: root/challenge-012/zapwai/javascript
diff options
context:
space:
mode:
authorDavid Ferrone <zapwai@gmail.com>2024-03-15 11:21:15 -0400
committerDavid Ferrone <zapwai@gmail.com>2024-03-15 11:21:15 -0400
commit60c68b3209b3c09d3cbd29b4ef33080546a43fbd (patch)
tree48d43fa4f9c8ea2492e7ab11146b7df7bb1a1679 /challenge-012/zapwai/javascript
parent2a68a16c1d8727b183d85c88f31ae6cec6a869b1 (diff)
downloadperlweeklychallenge-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.js49
-rw-r--r--challenge-012/zapwai/javascript/ch-2.js23
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))