forked from TheAlgorithms/JavaScript
- Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathProblem004.js
More file actions
Latest commit
44 lines (41 loc) · 1.16 KB
/
Copy pathProblem004.js
File metadata and controls
44 lines (41 loc) · 1.16 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
// 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.
*/
exportconstlargestPalindromic=(digits)=>{
leti
letn
letm
letd
letlimit
letnumber=0
for(i=1;i<digits;i++){
number=10*number+9
}
constinf=number// highest (digits - 1) number, in this example highest 2 digit number
constsup=10*number+9// highest (digits) number, in this example highest 3 digit number
constisPalindromic=(n)=>{
letp=0
constq=n
letr
while(n>0){
r=n%10
p=10*p+r
n=Math.floor(n/10)
}
returnp===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){
returnn
}
d-=1
}
}
}
returnNaN// returning not a number, if any such case arise
}