int checkPalindrome(int x) { if (x != reverseNumber(x)) { return 0; } return 1; }
int isPalindromeNumber(int num){ int rev=reverseNumber(num); if(rev==num) return 1; else return 0; }
bool isPalindrome(unsigned long num){ int i; reverse = reverseNumber(num); bool result = TRUE; for (i = 0; i < length - i; i++){ if (numberDigits[i] != numberDigits[length-i-1]) { result = FALSE; break; } } return result; }
long long f(long long n) { if (n < 10) return n; long long half = 1; while (half * half <= n) half *= 10; if (n % half == 0) // 1000 -> 999, 10000 -> 9999 return 1 + f(n - 1); else { long long v = reverseNumber(n - n%half + 1); if (v != n - n%half + 1) // 123654 -> 100321, subtract & reverse return n%half + f(v); else // 19 -> 11, but 11 is palindrome, without reverse -> 10 return n%half + f(v-1); } }
int main() { int lychrel_num = 10000; for (int i = 0; i < 10000; ++i) { unsigned long num = i; for (int j = 0; j < 50; ++j) { unsigned long reverse = reverseNumber(num); unsigned long sum = num + reverse; if (isPalindrome(sum)) { --lychrel_num; break; } else { num = sum; } } } printf("%d\n", lychrel_num); }
int main(int argc, char* argv){ int testCases, trash, i, j; unsigned long n; trash = scanf("%d\n",&testCases); for (i = 0; i < testCases; i++){ trash = scanf("%lu\n",&n); j = 0; reverse = reverseNumber(n); unsigned long sum = 0; do { j++; sum = reverse + n; n = sum; } while(j < 1000 && !isPalindrome(sum)); printf("%d %lu\n",j,sum); } return 0; }
int main(void) { primeNumbers(); int number; while (scanf("%d \n", &number) != EOF) { int reverse = reverseNumber(number); if (primes[number]) { if (primes[reverse] && number != reverse) { printf("%d is emirp.\n", number); } else { printf("%d is prime.\n", number); } } else { printf("%d is not prime.\n", number); } } return 0; }