On Thu, Aug 25, 2011 at 6:49 PM, surya k <sur...@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.
_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to