aboutsummaryrefslogtreecommitdiff
path: root/challenge-008/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-008/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-008/zapwai/javascript')
-rw-r--r--challenge-008/zapwai/javascript/ch-1.js30
-rw-r--r--challenge-008/zapwai/javascript/ch-2.js30
2 files changed, 60 insertions, 0 deletions
diff --git a/challenge-008/zapwai/javascript/ch-1.js b/challenge-008/zapwai/javascript/ch-1.js
new file mode 100644
index 0000000000..44351de732
--- /dev/null
+++ b/challenge-008/zapwai/javascript/ch-1.js
@@ -0,0 +1,30 @@
+function is_perfect(num) {
+ let divs = list_divisors(num);
+ let sum = 0;
+ divs.forEach(item => {
+ sum += item;
+ });
+ return (num == sum);
+}
+
+function list_divisors(num) {
+ let divs = [1];
+ for (let i = 2; i <= num/2; i++) {
+ if (num % i == 0)
+ divs.push(i);
+ }
+ return divs;
+}
+
+let perfect_numbers = [];
+
+for (let p = 2; p <= 15; p++) {
+ let num = Math.pow(2, p-1) * (Math.pow(2,p) - 1);
+ if (is_perfect(num))
+ perfect_numbers.push(num);
+ if (perfect_numbers.length == 5)
+ break;
+}
+
+console.log(perfect_numbers);
+
diff --git a/challenge-008/zapwai/javascript/ch-2.js b/challenge-008/zapwai/javascript/ch-2.js
new file mode 100644
index 0000000000..e2f7dfaa46
--- /dev/null
+++ b/challenge-008/zapwai/javascript/ch-2.js
@@ -0,0 +1,30 @@
+function center(words) {
+ let lens = [];
+ for (let word of words)
+ lens.push(word.length);
+ let m = max(lens);
+ let ind = 0;
+ for (let l of lens) {
+ let sp = (m - l) / 2;
+ let s = "";
+ for (let i = 0; i < sp; i++)
+ s += "&nbsp";
+ s += words[ind] + "<br>";
+ ind++;
+ document.write(s);
+ }
+}
+
+
+function max (nums) {
+ let max = 0;
+ for (let n of nums) {
+ if (max < n)
+ max = n;
+ }
+ return max;
+}
+
+let words = ["This", "is", "a test of the", "center function"];
+center(words);
+console.log(max([3, 5, 7, 1, 15]));