From 76751cfa4ca1287a516efae8b8d00fbe4988632b Mon Sep 17 00:00:00 2001 From: Abhishek Jain Date: Sun, 25 Oct 2020 15:09:06 +0530 Subject: [PATCH 1/3] feat: Added Solution to Euler Problem 4 --- Project-Euler/Problem4.js | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 Project-Euler/Problem4.js diff --git a/Project-Euler/Problem4.js b/Project-Euler/Problem4.js new file mode 100644 index 000000000..d12f77f1e --- /dev/null +++ b/Project-Euler/Problem4.js @@ -0,0 +1,38 @@ +// https://projecteuler.net/problem=4 +/* A palindromic number reads the same both ways. The largest palindrome made from the product of two 2-digit numbers is 9009 = 91 × 99. + Find the largest palindrome made from the product of two 3-digit numbers. +*/ +const largestPalindromic = (digits) => { + let i, n, m, d, inf, sup, limit, number = 0; + for (i = 1; i < digits; i++) { + number = 10 * number + 9; // + } + inf = number; // highest (digits - 1) number, in this example highest 2 digit number + sup = 10 * number + 9; // highest (digits) number, in this example highest 3 digit number + + function isPalindromic(n) { + let p = 0, q = n, r; + while (n > 0) { + r = n % 10; + p = 10 * p + r; + n = Math.floor(n / 10); + } + return p === q; // returning whether the number is palindromic or not + } + + for (n = sup * sup, m = inf * inf; n > m; n--) { + if (isPalindromic(n)) { + limit = Math.ceil(Math.sqrt(n)); + d = sup; + while (d >= limit) { + if (n % d === 0 && n / d > inf) { + return n; + } + d -= 1; + } + } + } + return NaN; // returning not a number, if any such case arise +} + +console.log(largestPalindromic(3)); \ No newline at end of file From 5f1390fe5596a1e7b50a4cbc696a9877d5ffaed5 Mon Sep 17 00:00:00 2001 From: Abhishek Jain Date: Sun, 25 Oct 2020 15:20:08 +0530 Subject: [PATCH 2/3] Fixed Indendation Issues --- Project-Euler/Problem4.js | 44 +++++++++++++++++++++++---------------- 1 file changed, 26 insertions(+), 18 deletions(-) diff --git a/Project-Euler/Problem4.js b/Project-Euler/Problem4.js index d12f77f1e..d2abd2df9 100644 --- a/Project-Euler/Problem4.js +++ b/Project-Euler/Problem4.js @@ -3,36 +3,44 @@ Find the largest palindrome made from the product of two 3-digit numbers. */ const largestPalindromic = (digits) => { - let i, n, m, d, inf, sup, limit, number = 0; - for (i = 1; i < digits; i++) { - number = 10 * number + 9; // - } - inf = number; // highest (digits - 1) number, in this example highest 2 digit number - sup = 10 * number + 9; // highest (digits) number, in this example highest 3 digit number + let i + let n + let m + let d + let limit + let number = 0 - function isPalindromic(n) { - let p = 0, q = n, r; + for (i = 1; i < digits; i++) { + number = 10 * number + 9 + } + const inf = number // highest (digits - 1) number, in this example highest 2 digit number + const sup = 10 * number + 9 // highest (digits) number, in this example highest 3 digit number + + const isPalindromic = (n) => { + let p = 0 + const q = n + let r while (n > 0) { - r = n % 10; - p = 10 * p + r; - n = Math.floor(n / 10); + r = n % 10 + p = 10 * p + r + n = Math.floor(n / 10) } - return p === q; // returning whether the number is palindromic or not + return p === q // returning whether the number is palindromic or not } for (n = sup * sup, m = inf * inf; n > m; n--) { if (isPalindromic(n)) { - limit = Math.ceil(Math.sqrt(n)); - d = sup; + limit = Math.ceil(Math.sqrt(n)) + d = sup while (d >= limit) { if (n % d === 0 && n / d > inf) { - return n; + return n } - d -= 1; + d -= 1 } } } - return NaN; // returning not a number, if any such case arise + return NaN // returning not a number, if any such case arise } -console.log(largestPalindromic(3)); \ No newline at end of file +console.log(largestPalindromic(3)) From c49ca84fcb2e7390581ebd931262106f2f1a14e6 Mon Sep 17 00:00:00 2001 From: Abhishek Jain Date: Sun, 25 Oct 2020 15:21:56 +0530 Subject: [PATCH 3/3] updated the code as per standardjs --- Project-Euler/Problem4.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Project-Euler/Problem4.js b/Project-Euler/Problem4.js index d2abd2df9..bcc4d880b 100644 --- a/Project-Euler/Problem4.js +++ b/Project-Euler/Problem4.js @@ -11,7 +11,7 @@ const largestPalindromic = (digits) => { let number = 0 for (i = 1; i < digits; i++) { - number = 10 * number + 9 + number = 10 * number + 9 } const inf = number // highest (digits - 1) number, in this example highest 2 digit number const sup = 10 * number + 9 // highest (digits) number, in this example highest 3 digit number