/*------------------------------------------------------------------------------ * problem001.c: Palindromic squares **----------------------------------------------------------------------------*/ /* Copyright (c) 2009 Peter Bui. All Rights Reserved. * * Peter Bui * **------------------------------------------------------------------------------ * Includes **----------------------------------------------------------------------------*/ #include #include #include /*------------------------------------------------------------------------------ * Constants **----------------------------------------------------------------------------*/ #define TRUE 1 #define FALSE 0 #define BUFFER_SIZE 128 /*------------------------------------------------------------------------------ * Functions **----------------------------------------------------------------------------*/ int is_palindrome(char *s) { char *fp, *bp; int slen, i; slen = strlen(s); fp = &s[0]; bp = &s[slen - 1]; for (i = 0; i < slen/2; i++) if (*fp++ != *bp--) return FALSE; return TRUE; } /*------------------------------------------------------------------------------ * Main Execution **----------------------------------------------------------------------------*/ int main(int argc, char* argv[]) { int i, ii, start, end, found; char buffer[BUFFER_SIZE]; while (scanf("%d %d", &start, &end) == 2) { found = 0; for (i = start; i <= end; i++) { ii = i * i; snprintf(buffer, BUFFER_SIZE, "%d", ii); if (is_palindrome(buffer)) { found = 1; printf("%d %d\n", i, ii); } } if (!found) printf("-1 -1\n"); } return (EXIT_SUCCESS); } /*------------------------------------------------------------------------------ * vim: sts=4 sw=4 ts=8 ft=c **----------------------------------------------------------------------------*/