aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteven Wilson <steven1170@zoho.eu>2022-01-14 14:10:34 +0000
committerSteven Wilson <steven1170@zoho.eu>2022-01-14 14:10:34 +0000
commit91c79284313180190ba8873f00c1b643fa894a96 (patch)
tree376488d30c1da4a08829b65a6d4b5bcd5f8f27ed
parent8d0d58de8ba34070228f62b67b8c8fd7a4e27373 (diff)
downloadperlweeklychallenge-club-91c79284313180190ba8873f00c1b643fa894a96.tar.gz
perlweeklychallenge-club-91c79284313180190ba8873f00c1b643fa894a96.tar.bz2
perlweeklychallenge-club-91c79284313180190ba8873f00c1b643fa894a96.zip
add solution week 147 task 2 in javascript
-rwxr-xr-xchallenge-147/steven-wilson/javascript/ch-02.js38
1 files changed, 38 insertions, 0 deletions
diff --git a/challenge-147/steven-wilson/javascript/ch-02.js b/challenge-147/steven-wilson/javascript/ch-02.js
new file mode 100755
index 0000000000..36fadd5903
--- /dev/null
+++ b/challenge-147/steven-wilson/javascript/ch-02.js
@@ -0,0 +1,38 @@
+#!/usr/bin/env node
+// Week 147 Task 2
+// Pentagon Numbers
+// Write a sript to find the first pair of Pentagon Numbers
+// whose sum and difference are also a Pentagon Number.
+// Answer: First pair is 1560090 and 7042750
+
+var pentagonal_numbers = [1]
+var pair_found = false
+var number = 2
+
+while (!pair_found) {
+ let next_pn = pentagonal_number(number)
+ for (let i = 0; i < pentagonal_numbers.length; i++) {
+ if ((is_pentagonal_number(next_pn - pentagonal_numbers[i])) &&
+ (is_pentagonal_number(next_pn + pentagonal_numbers[i]))) {
+ console.log('First pair are ' + pentagonal_numbers[i] + ' and ' + next_pn)
+ pair_found = true
+ break
+ }
+ }
+ pentagonal_numbers.push(next_pn)
+ number++
+}
+
+function pentagonal_number (number) {
+ return ( ( 3 * ( number * number ) ) - number ) / 2
+}
+
+function is_pentagonal_number (number) {
+ let remainder = ( Math.sqrt( 24 * number + 1 ) + 1 ) % 6;
+ if ( remainder > 0 ) {
+ return false
+ }
+ else {
+ return true
+ }
+}