diff options
| author | Mohammad S Anwar <Mohammad.Anwar@yahoo.com> | 2022-01-14 15:01:47 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-01-14 15:01:47 +0000 |
| commit | 41c4fa6ba43d78906ce7de37fd323cbef9e8edc2 (patch) | |
| tree | 95c947a4f7e8d2c2f202b111c4b2f6f2429557d0 /challenge-147/steven-wilson/javascript/ch-02.js | |
| parent | 4a3c3aa6561237ac153b184e932ee4bfdb761c45 (diff) | |
| parent | 91c79284313180190ba8873f00c1b643fa894a96 (diff) | |
| download | perlweeklychallenge-club-41c4fa6ba43d78906ce7de37fd323cbef9e8edc2.tar.gz perlweeklychallenge-club-41c4fa6ba43d78906ce7de37fd323cbef9e8edc2.tar.bz2 perlweeklychallenge-club-41c4fa6ba43d78906ce7de37fd323cbef9e8edc2.zip | |
Merge pull request #5517 from oWnOIzRi/week147
add solution week 147 task 2 in perl and javascript
Diffstat (limited to 'challenge-147/steven-wilson/javascript/ch-02.js')
| -rwxr-xr-x | challenge-147/steven-wilson/javascript/ch-02.js | 38 |
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 + } +} |
