Skip to content

Commit 76751cf

Browse files
Abhishek JainAbhishek Jain
authored andcommitted
feat: Added Solution to Euler Problem 4
1 parent 1db7aa7 commit 76751cf

File tree

1 file changed

+38
-0
lines changed

1 file changed

+38
-0
lines changed

Project-Euler/Problem4.js

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
// https://projecteuler.net/problem=4
2+
/* A palindromic number reads the same both ways. The largest palindrome made from the product of two 2-digit numbers is 9009 = 91 × 99.
3+
Find the largest palindrome made from the product of two 3-digit numbers.
4+
*/
5+
const largestPalindromic = (digits) => {
6+
let i, n, m, d, inf, sup, limit, number = 0;
7+
for (i = 1; i < digits; i++) {
8+
number = 10 * number + 9; //
9+
}
10+
inf = number; // highest (digits - 1) number, in this example highest 2 digit number
11+
sup = 10 * number + 9; // highest (digits) number, in this example highest 3 digit number
12+
13+
function isPalindromic(n) {
14+
let p = 0, q = n, r;
15+
while (n > 0) {
16+
r = n % 10;
17+
p = 10 * p + r;
18+
n = Math.floor(n / 10);
19+
}
20+
return p === q; // returning whether the number is palindromic or not
21+
}
22+
23+
for (n = sup * sup, m = inf * inf; n > m; n--) {
24+
if (isPalindromic(n)) {
25+
limit = Math.ceil(Math.sqrt(n));
26+
d = sup;
27+
while (d >= limit) {
28+
if (n % d === 0 && n / d > inf) {
29+
return n;
30+
}
31+
d -= 1;
32+
}
33+
}
34+
}
35+
return NaN; // returning not a number, if any such case arise
36+
}
37+
38+
console.log(largestPalindromic(3));

0 commit comments

Comments
 (0)