# The Next Palindrome number

I am beginner in programming, So can you please tell me what’s wrong with my code?

I want to print next palindrome number if the number entered by the user (n) is not palindrome

```n = int(input("Enter any number :- "))

reverse = 0
temp = n

while (n!=0):
reverse = reverse * 10
reverse = reverse + n%10
n=n//10
if(temp==reverse):

if(temp != reverse):
new_temp = temp
new_reverse = 0
for i in range(new_temp,new_temp+10):
while(temp != 0):
new_reverse = new_reverse * 10
new_reverse = new_reverse + temp%10
temp = temp//10
if(new_temp==new_reverse):
print ("Next pallindrome is :- ",new_temp)
break
if(new_temp != new_reverse):
temp = new_temp+1
```

There are two problems with your code.

1) Your “for i in range” loop calculates the reverse of the temp variable, but you don’t change the temp variable’s value. You do

``` new_temp = temp
for i in range(new_temp,new_temp+10):
[SNIP]
if(new_temp != new_reverse):
temp = new_temp+1 #this value never changes.
```

So you’re making 10 iterations with one and the same value.

2) Ten iterations might not be enough to find a palindrome. Keep going until you find a palindrome.

Working code:

```def reverse(num):
reverse= 0
while num:
reverse= reverse*10 + num%10
num= num//10
return reverse

num= int(input("Enter any number :- "))
if num==reverse(num):