From a81084c58608ac4b0888bdcd57725e8394ed043f Mon Sep 17 00:00:00 2001 From: Christian Bender Date: Sun, 3 Dec 2017 15:39:13 +0100 Subject: [PATCH] Refactoring solv1.py Little embellishment of the code. I put some comments and put readable identifiers. I documented the code. --- Project Euler/Problem 04/sol1.py | 31 ++++++++++++++++++++++--------- 1 file changed, 22 insertions(+), 9 deletions(-) diff --git a/Project Euler/Problem 04/sol1.py b/Project Euler/Problem 04/sol1.py index f8ed832d8..247de2557 100644 --- a/Project Euler/Problem 04/sol1.py +++ b/Project Euler/Problem 04/sol1.py @@ -3,13 +3,26 @@ Problem: A palindromic number reads the same both ways. The largest palindrome made from the product of two 2-digit numbers is 9009 = 91 x 99. Find the largest palindrome made from the product of two 3-digit numbers which is less than N. ''' -n=int(input()) -for i in range(n-1,10000,-1): - temp=str(i) - if(temp==temp[::-1]): - j=999 - while(j!=99): - if((i%j==0) and (len(str(i/j))==3)): - print i +limit = int(input("limit? ")) + +# fetchs the next number +for number in range(limit-1,10000,-1): + + # converts number into string. + strNumber = str(number) + + # checks whether 'strNumber' is a palindrome. + if(strNumber == strNumber[::-1]): + + divisor = 999 + + # if 'number' is a product of two 3-digit numbers + # then number is the answer otherwise fetch next number. + while(divisor != 99): + + if((number % divisor == 0) and (len(str(number / divisor)) == 3)): + + print number exit(0) - j-=1 + + divisor -=1 \ No newline at end of file