#include <stdio.h>
#include <math.h>
/* 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.
*/
unsigned reverse(unsigned i)
{
unsigned r = 0;
while (i)
{
r *= 10;
r += i % 10;
i /= 10;
}
return r;
}
int main()
{
unsigned largest = 0;
for (unsigned j = 999; j>99; --j)
{
for (unsigned k = j; k>99; --k)
{
const unsigned prod = j*k;
//printf("%d x %d = %d\n", j, k, prod);
const unsigned lhs = prod / 1000;
const unsigned rhs = prod % 1000;
if (lhs==reverse(rhs) && prod>largest)
largest = prod;
}
}
printf("%d\n", largest);
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxtYXRoLmg+CgovKiBBIHBhbGluZHJvbWljIG51bWJlciByZWFkcyB0aGUgc2FtZSBib3RoIHdheXMuIFRoZSBsYXJnZXN0IHBhbGluZHJvbWUgbWFkZQogKiBmcm9tIHRoZSBwcm9kdWN0IG9mIHR3byAyLWRpZ2l0IG51bWJlcnMgaXMgOTAwOSA9IDkxIMOXIDk5LgogKgogKiBGaW5kIHRoZSBsYXJnZXN0IHBhbGluZHJvbWUgbWFkZSBmcm9tIHRoZSBwcm9kdWN0IG9mIHR3byAzLWRpZ2l0IG51bWJlcnMuCiovCgp1bnNpZ25lZCByZXZlcnNlKHVuc2lnbmVkIGkpCnsKICAgIHVuc2lnbmVkIHIgPSAwOwogICAgd2hpbGUgKGkpCiAgICB7CiAgICAgICAgciAqPSAxMDsKICAgICAgICByICs9IGkgJSAxMDsKICAgICAgICBpIC89IDEwOwogICAgfQoKICAgIHJldHVybiByOwp9CgppbnQgbWFpbigpCnsKICAgIHVuc2lnbmVkIGxhcmdlc3QgPSAwOwogICAgZm9yICh1bnNpZ25lZCBqID0gOTk5OyBqPjk5OyAtLWopCiAgICB7CiAgICAgICAgZm9yICh1bnNpZ25lZCBrID0gajsgaz45OTsgLS1rKSAKICAgICAgICB7CiAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIHByb2QgPSBqKms7CgogICAgICAgICAgICAvL3ByaW50ZigiJWQgeCAlZCA9ICVkXG4iLCBqLCBrLCBwcm9kKTsKICAgICAgICAgICAgCiAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGxocyA9IHByb2QgLyAxMDAwOwogICAgICAgICAgICBjb25zdCB1bnNpZ25lZCByaHMgPSBwcm9kICUgMTAwMDsKCiAgICAgICAgICAgIGlmIChsaHM9PXJldmVyc2UocmhzKSAmJiBwcm9kPmxhcmdlc3QpCiAgICAgICAgICAgICAgICBsYXJnZXN0ID0gcHJvZDsKICAgICAgICB9CiAgICB9CgogICAgcHJpbnRmKCIlZFxuIiwgbGFyZ2VzdCk7CiAgICByZXR1cm4gMDsKfQo=