Euler Project #4: Largest Palindrome

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.

Answer = 906609

var int1 = 999, int2 = 999, product = 0, largestProduct = 0
while int1 > 900
{
int2 = 999
while int2 >= int1
{
product = int1 * int2
// this is ridiculous, but it works:
if (product > largestProduct) && (product == Int(String(Array(String(product).characters.reverse()))))
{
largestProduct = product
}
int2--
}
int1--
}
print(largestProduct)

This took a ridiculously long time. I originally had a separate function to convert the product integer to a string, then an array of characters, then all the way back to an integer. That took much longer than I expected, because Swift and (lack of) documentation. It ended up being more efficient to put it all into one function, even though the lack of separation of duties makes me cringe . I also knew what the final integers were, so I was able to modify the first while loop to run more quickly to test. If I hadn't known, I would have run the first loop down to 1.