#include <stdio.h>
static int isPalindrome(int num) {
int temp = num, rev = 0;
while (temp > 0) {
rev = rev * 10 + (temp % 10);
temp /= 10;
}
return rev == num;
}
static int getLargestPalindromeOfTwo3digitNumbers(int* LargestNum1, int* LargestNum2) {
int largestPalindrome = -1;
for (int num1 = 100; num1 < 1000; num1++) { // 100 to 999
int product = 99 * num1;
for (int num2 = 100; num2 < 1000; num2++) { // 100 to 999
product += num1;
if (product > largestPalindrome && isPalindrome(product)) {
*LargestNum1 = num1;
*LargestNum2 = num2;
largestPalindrome = product;
}
}
}
return largestPalindrome;
}
int main() {
int LargestNum1 = 0, LargestNum2 = 0;
printf("%d x %d = %d", LargestNum1, LargestNum2, getLargestPalindromeOfTwo3digitNumbers(&LargestNum1, &LargestNum2));
return 0;
}
/*
run:
913 x 993 = 906609
*/