// A palindromic number reads the same both ways. The largest palindrome made<\/span>
<\/span>// from the product of two 2-digit numbers is 9009 = 91 x 99.<\/span>
<\/span>// Find the largest palindrome made from the product of two 3-digit numbers.<\/span>
<\/span>(<\/span>function<\/span> <\/span>euler004<\/span>(<\/span>)<\/span> <\/span>{<\/span>
<\/span>// start with the largest number from two 3-digit numbers<\/span>
<\/span>var<\/span> <\/span>n<\/span> <\/span>=<\/span> <\/span>999<\/span> <\/span>*<\/span> <\/span>999<\/span>;<\/span>
<\/span>var<\/span> <\/span>nStr<\/span>;<\/span>
<\/span>var<\/span> <\/span>nStrReversed<\/span>;<\/span>
<\/span>var<\/span> <\/span>sqrt<\/span>;<\/span>
<\/span>var<\/span> <\/span>divisor<\/span>;<\/span>
<\/span>while<\/span> <\/span>(<\/span>n<\/span> <\/span>><\/span> <\/span>200000<\/span>)<\/span> <\/span>{<\/span>
<\/span>// check if n is a palindrome<\/span>
<\/span>// convert to string<\/span>
<\/span>nStr<\/span> <\/span>=<\/span> <\/span>n<\/span> <\/span>+<\/span> <\/span>\'<\/span>\'<\/span><\/span>;<\/span>
<\/span>// reverse string<\/span>
<\/span>nStrReversed<\/span> <\/span>=<\/span> <\/span>nStr<\/span>.<\/span>split<\/span>(<\/span>\'<\/span>\'<\/span><\/span>)<\/span>.<\/span>reverse<\/span>(<\/span>)<\/span>.<\/span>join<\/span>(<\/span>\'<\/span>\'<\/span><\/span>)<\/span>;<\/span>
<\/span>// if they are identical, then n is a palindrome<\/span>
<\/span>if<\/span> <\/span>(<\/span>nStr<\/span> <\/span>===<\/span> <\/span>nStrReversed<\/span>)<\/span> <\/span>{<\/span>
<\/span>// find the sqrt<\/span>
<\/span>// one of the factors has to be less than the sqrt<\/span>
<\/span>// so this reduces the number of iterations needed<\/span>
<\/span>sqrt<\/span> <\/span>=<\/span> <\/span>Math<\/span>.<\/span>sqrt<\/span>(<\/span>n<\/span>)<\/span>;<\/span>
<\/span>// make it an integer<\/span>
<\/span>divisor<\/span> <\/span>=<\/span> <\/span>Math<\/span>.<\/span>floor<\/span>(<\/span>sqrt<\/span>)<\/span>;<\/span>
<\/span>// while n / divisor leaves a remainder<\/span>
<\/span>// and the divisor greater than 3-digits<\/span>
<\/span>// and the other factor less than 4-digits<\/span>
<\/span>while<\/span> <\/span>(<\/span>n<\/span> <\/span>%<\/span> <\/span>divisor<\/span> <\/span>!==<\/span> <\/span>0<\/span> <\/span>&&<\/span> <\/span>divisor<\/span> <\/span>>=<\/span> <\/span>100<\/span> <\/span>&&<\/span> <\/span>n<\/span> <\/span>/<\/span> <\/span>divisor<\/span> <\/span><=<\/span> <\/span>999<\/span>)<\/span> <\/span>{<\/span>
<\/span>// reduce divisor by 1<\/span>
<\/span>divisor<\/span>--;<\/span>
<\/span>}<\/span>
<\/span>// if n / divisor leaves no remainder<\/span>
<\/span>// and the divisor is greater than 3-digits<\/span>
<\/span>// and thh other factor is less than 4-digits<\/span>
<\/span>if<\/span> <\/span>(<\/span>n<\/span> <\/span>%<\/span> <\/span>divisor<\/span> <\/span>===<\/span> <\/span>0<\/span> <\/span>&&<\/span> <\/span>divisor<\/span> <\/span>>=<\/span> <\/span>100<\/span> <\/span>&&<\/span> <\/span>n<\/span> <\/span>/<\/span> <\/span>divisor<\/span> <\/span><=<\/span> <\/span>999<\/span>