As a side note, I'd suggest making your function take a string of some kind, if not outright making it a template to deal with multiple string types. That way, you can check for a palindrome regardless of whether you're dealing with numbers, and if you need to do it with a number, you just convert it to a string when you call isPalidrome. So, you're function (without changing anything other than the signature) would become something like
bool isPalindrome(S)(in S s) { int length = s.length; int limit = length / 2; for (int i = 0; i < limit; ++i) { if (s[i] != s[$ - 1 - i]) { return false; } } return true; } and my version would look like this: bool isPalindrome(S)(in S s) { while(!s.empty) { if(s.length == 1) return true; if(s.front != s.back) return false; s.popFront(); s.popBack(); } return true; } So, calls to it with a number would look like isPalindrome(to!string(num)) - Jonathan M Davis