# [Tutor] largest palindrome number Classic List Threaded 6 messages Open this post in threaded view
|

## [Tutor] largest palindrome number

 Hi,I'm doing a puzzle where it asked me to find the largest palindrome number formed by the product of two three-digit numbers. They mentioned an example saying that 9009 is the largest palindrome number formed by two two-digit numbers (99 * 91). I've written my code this way.. and I tested it with the given example and I got it right!Logic I used :largest two digit number is 99 and three digit number is 999.. so largest product of two two-digit numbers is < 100*100 and for three-digit numbers is < 1000*1000.  So, I used a for loop and it assigns a palindromic value to PNum till it is  < 100*100 (for 2 digit number) and < 1000*1000 (for three-digit number)..Thus it stops at the max possible palindromic value, which is what we want. def palindrome (n) :         TempN = n    rev  = 0        while n != 0 :         k = n % 10     rev = (rev * 10) + k      n = n / 10    if  TempN == rev :         return TempN # Palindrome    else :      return 0 # not Palindrome for i in range (1,100) :     for j in range (i,100) :         Temp = palindrome(i*j)        if Temp < 10000 and Temp != 0 :            PNum = Tempprint PNum      So, for getting the largest palindrome number formed by two three-digit numbers, I changed 100 to 1000 and 1,00,00 to 1,000,000 in the highlighted area. Thus I got the answer to be 888888. When I submitted the answer, its saying wrong! Where I'm going wrong ? help me, please ! _______________________________________________ Tutor maillist  -  [hidden email] To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor
Open this post in threaded view
|

## Re: [Tutor] largest palindrome number

 On Thu, Aug 25, 2011 at 6:49 PM, surya k <[hidden email]> wrote: > Hi, > I'm doing a puzzle where it asked me to find the largest palindrome number > formed by the product of two three-digit numbers. They mentioned an example > saying that 9009 is the largest palindrome number formed by two two-digit > numbers (99 * 91). > I've written my code this way.. and I tested it with the given example and I > got it right! > Logic I used : > largest two digit number is 99 and three digit number is 999.. so largest > product of two two-digit numbers is < 100*100 and for three-digit numbers is > < 1000*1000. > So, I used a for loop and it assigns a palindromic value to PNum till it is >  < 100*100 (for 2 digit number) and < 1000*1000 (for three-digit number).. > Thus it stops at the max possible palindromic value, which is what we want. > > def palindrome (n) : > >     TempN = n >     rev  = 0 >     while n != 0 : >         k = n % 10 >      rev = (rev * 10) + k >      n = n / 10 >     if  TempN == rev : >         return TempN # Palindrome >     else : >      return 0 # not Palindrome > > for i in range (1,100) : >     for j in range (i,100) : >         Temp = palindrome(i*j) >         if Temp < 10000 and Temp != 0 : >            PNum = Temp > print PNum > > > So, for getting the largest palindrome number formed by two three-digit > numbers, I changed 100 to 1000 and 1,00,00 to 1,000,000 in the highlighted > area. Thus I got the answer to be 888888. When I submitted the answer, its > saying wrong! > Where I'm going wrong ? > help me, please ! > When you get a new palindrome, you should make sure it's bigger than the one you already have before you replace the old one. 888888 is the last palindrome you find, but it is not the the biggest. You cannot assume the biggest one will be found last. _______________________________________________ Tutor maillist  -  [hidden email] To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor
Open this post in threaded view
|

## Re: [Tutor] largest palindrome number

 If you take a close look at my code. for i in range (1,100) :     for j in range (i,100) :        Temp = palindrome(i*j) here, as the loop goes on, i*j can never become smaller in any case. which is why I think it, as long as "PNum" gets a new number, its bigger palindrome than the previous.. so, at the end of the loop. we'll get largest palindrome number.. On 8/25/11, Hugo Arts <[hidden email]> wrote: > On Thu, Aug 25, 2011 at 6:49 PM, surya k <[hidden email]> wrote: >> Hi, >> I'm doing a puzzle where it asked me to find the largest palindrome number >> formed by the product of two three-digit numbers. They mentioned an >> example >> saying that 9009 is the largest palindrome number formed by two two-digit >> numbers (99 * 91). >> I've written my code this way.. and I tested it with the given example and >> I >> got it right! >> Logic I used : >> largest two digit number is 99 and three digit number is 999.. so largest >> product of two two-digit numbers is < 100*100 and for three-digit numbers >> is >> < 1000*1000. >> So, I used a for loop and it assigns a palindromic value to PNum till it >> is >>  < 100*100 (for 2 digit number) and < 1000*1000 (for three-digit number).. >> Thus it stops at the max possible palindromic value, which is what we >> want. >> >> def palindrome (n) : >> >>     TempN = n >>     rev  = 0 >>     while n != 0 : >>         k = n % 10 >>      rev = (rev * 10) + k >>      n = n / 10 >>     if  TempN == rev : >>         return TempN # Palindrome >>     else : >>      return 0 # not Palindrome >> >> for i in range (1,100) : >>     for j in range (i,100) : >>         Temp = palindrome(i*j) >>         if Temp < 10000 and Temp != 0 : >>            PNum = Temp >> print PNum >> >> >> So, for getting the largest palindrome number formed by two three-digit >> numbers, I changed 100 to 1000 and 1,00,00 to 1,000,000 in the highlighted >> area. Thus I got the answer to be 888888. When I submitted the answer, its >> saying wrong! >> Where I'm going wrong ? >> help me, please ! >> > > When you get a new palindrome, you should make sure it's bigger than > the one you already have before you replace the old one. 888888 is the > last palindrome you find, but it is not the the biggest. You cannot > assume the biggest one will be found last. > _______________________________________________ Tutor maillist  -  [hidden email] To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor
Open this post in threaded view
|

## Re: [Tutor] largest palindrome number

 On 8/27/2011 8:21 AM surya k said... > If you take a close look at my code. > > for i in range (1,100) : >      for j in range (i,100) : >         Temp = palindrome(i*j) > > here, as the loop goes on, i*j can never become smaller Of course it can...  i=3 * j=90 is less than i=4 * j=4... Emile _______________________________________________ Tutor maillist  -  [hidden email] To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor
 In reply to this post by surya k * surya k <[hidden email]> [2011-08-27 20:51]: > > here, as the loop goes on, i*j can never become smaller in any case. > which is why I think it, as long as "PNum" gets a new number, its > bigger palindrome than the previous.. so, at the end of the loop. > we'll get largest palindrome number.. > > On 8/25/11, Hugo Arts <[hidden email]> wrote: > > > > When you get a new palindrome, you should make sure it's bigger than > > the one you already have before you replace the old one. 888888 is the > > last palindrome you find, but it is not the the biggest. You cannot > > assume the biggest one will be found last. > > As implied by Hugo, What you need to to do is store your largest current palindrome and as you find a new one, replace the largest current only if the one you just found is actually larger.  Once you go through the entire block, the value in your largest current value will actually be the largest palindrome. -- David Rock [hidden email] _______________________________________________ Tutor maillist  -  [hidden email] To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor attachment0 (197 bytes) Download Attachment