[Tutor] largest palindrome number

surya k suryak at live.com
Sat Aug 27 17:21:56 CEST 2011


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 <hugo.yoshi at gmail.com> wrote:
> On Thu, Aug 25, 2011 at 6:49 PM, surya k <suryak at live.com> 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.
>


More information about the Tutor mailing list