#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 getLargestPalindromeOfTwo2digitNumbers(int* LargestNum1, int* LargestNum2) {
int largestPalindrome = -1;
for (int num1 = 10; num1 < 100; num1++) { // 10 to 99
int product = 9 * num1;
for (int num2 = 10; num2 < 100; num2++) { // 10 to 99
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, getLargestPalindromeOfTwo2digitNumbers(&LargestNum1, &LargestNum2));
return 0;
}
/*
run:
91 x 99 = 9009
*/