#------------------------------------------------------------------------------- # Name: Find the largest palindrome made from the product of two 3-digit numbers. # Purpose: # # Author: benben # # Created: 19-11-2008 # Copyright: (c) benben 2008 # WebUrl: http://www.119797.com # Licence: #------------------------------------------------------------------------------- #!/usr/bin/env python def revert(num): 'revert a num .. 321->123' result=0 while num >0: result=result*10 result=result+num%10 num=num/10 return result def ispalindrome(num): if num==revert(num): return True return False def ispalindrom2(num): num=str(num) return num==num[::-1] def func1(len): print max(m*n for m in range(10**(len-1),10**len) for n in range(m,10**len) if ispalindrome(m*n)) def func2(len): print max(m*n for m in range(10**(len-1),10**len) for n in range(m,10**len) if ispalindrom2(m*n)) def main(): import timeit t1 = timeit.Timer("func1(3)","from __main__ import func1") t2=timeit.Timer("func2(4)","from __main__ import func2") print t1.timeit(1) print t2.timeit(1) print t3.timeit(1) if __name__ == '__main__': main()