fork download
  1. #include <iostream>
  2. #include <ctime>
  3.  
  4. bool IsPalindrome( int n )
  5. {
  6. int nCpy = n; // Copy of n
  7. unsigned long r = 0; // n reverse
  8.  
  9. while( nCpy > 0 )
  10. {
  11. r = r * 10 + nCpy % 10;
  12. nCpy /= 10;
  13. }
  14.  
  15. return n == r;
  16. }
  17.  
  18. int main( int argc, char* argv[] )
  19. {
  20. unsigned long largest = 0; // Largest palindrome
  21. unsigned int i, j; // Loop counters
  22. unsigned long p; // Product of i and j
  23. int first, second; // Factors
  24. clock_t t = clock(); // Timer
  25.  
  26. for( i=100; i < 1000; ++i )
  27. {
  28. for( j=100; j < 1000; ++j )
  29. {
  30. p = i * j;
  31. if( IsPalindrome( p ) )
  32. {
  33. if( p > largest )
  34. {
  35. largest = p;
  36. first = i;
  37. second = j;
  38. }
  39. }
  40. }
  41. }
  42.  
  43. t = clock() - t;
  44. std::cout << "The largest palindrome is " << largest;
  45. std::cout << " (" << first << " x " << second << ")\n";
  46. std::cout << "Time taken: " << static_cast<float>( t ) / CLOCKS_PER_SEC << " seconds\n";
  47.  
  48. return 0;
  49. }
Success #stdin #stdout 0.02s 2852KB
stdin
Standard input is empty
stdout
The largest palindrome is 906609 (913 x 993)
Time taken: 0.02 seconds