# Rearranging the given number to form the smallest number in Python

In this article, we will implement a program to rearrange the digits of a given number to form the smallest possible number in Python. We will rearrange the number such that it forms the smallest with the number and the number digits same as the given number.

Examples

```Input: 412308
Output: 102348

Input: 028182012
Output: 10122288```

Method 1:

1. Firstly convert the given number into the string using the str() function.

2. Then sort the string and join them like n = ”.join(sorted(n)).

3. Traverse the string n and find the first non zero element in this string n

• If n[i] == 0 the increase the i value by 1

4. Finally, swap the n[i] with n and return the n value.

```def rearrage(n):
n = ''.join(sorted(n))
i = 0
while(n[i] == '0'):
i += 1
a = list(n)
temp = a
a = a[i]
a[i] = temp
n = ''.join(a)
return n
n = int(input("Enter the n value: "))
print(rearrage(str(n)))```

Output

```Enter the n value: 028182012
10122288

Enter the n value: 412308
102348```

Method 2:

1. Firstly convert integer n into list of string i.e. l = list(str(n))

2. Traverse the list l i.e. enumerate(l)

• Find the first non-zero element.

3. Append it in the front of string and return the result.

```def rearrage(l):
for i, n in enumerate(l):
if n != '0':
temp = l.pop(i)
break

return str(temp)+ ''.join(l)

n = int(input("Enter the n value: "))
l = list(str(n))
l.sort()
print("Smallest number formed by rearranging is: ", rearrage(l))```

Output

```Enter the n value: 98760345678
Smallest number formed by rearranging is: 30456677889

Enter the n value: 00128301
Smallest number formed by rearranging is: 101238```