Reversing Long integers

Brian Lloyd Brian at digicool.com
Thu Apr 22 16:04:40 EDT 1999


> I am attempting to write an efficient Python program which 
> can add an integer to
> its reverse. This is quite easy to do in Lisp and Mathematica 
> but (mostly out of
> curiosity) I wanted to see how one might do this in Python. 
> Converting an
> integer to a string and reversing it and converting back is 
> quite easy (although
> not all of these ops are primitives) but the fact that Long 
> integers have the
> letter L appended means that the loop must include moving the 
> L to the end of
> the reversed string prior to summing. Can anyone think of a 
> particularly clever
> way to do this?


Ok, I'll bite :) I don't know if this is particularly clever,
but it works and should be pretty fast...


import string
def addrev(num, join=string.join, atol=string.atol):
    """Add a long to its reverse"""
    rev=list(str(num)[:-1])
    rev.reverse()
    return num + atol(join(rev, ''))
    


Brian Lloyd        brian at digicool.com
Software Engineer  540.371.6909              
Digital Creations  http://www.digicool.com 






More information about the Python-list mailing list