fork download
  1. #include <stdio.h>
  2. #include <math.h>
  3.  
  4. /* A palindromic number reads the same both ways. The largest palindrome made
  5.  * from the product of two 2-digit numbers is 9009 = 91 × 99.
  6.  *
  7.  * Find the largest palindrome made from the product of two 3-digit numbers.
  8. */
  9.  
  10. unsigned reverse(unsigned i)
  11. {
  12. unsigned r = 0;
  13. while (i)
  14. {
  15. r *= 10;
  16. r += i % 10;
  17. i /= 10;
  18. }
  19.  
  20. return r;
  21. }
  22.  
  23. int main()
  24. {
  25. unsigned largest = 0;
  26. for (unsigned j = 999; j>99; --j)
  27. {
  28. for (unsigned k = j; k>99; --k)
  29. {
  30. const unsigned prod = j*k;
  31.  
  32. //printf("%d x %d = %d\n", j, k, prod);
  33.  
  34. const unsigned lhs = prod / 1000;
  35. const unsigned rhs = prod % 1000;
  36.  
  37. if (lhs==reverse(rhs) && prod>largest)
  38. largest = prod;
  39. }
  40. }
  41.  
  42. printf("%d\n", largest);
  43. return 0;
  44. }
  45.  
Success #stdin #stdout 0s 3340KB
stdin
Standard input is empty
stdout
906609