# Print all Disarium numbers within given range in Python

In this tutorial, we will learn to **print all Disarium numbers within the given range using Python**. Here we will learn what is a Disarium number, how to find whether a number is a Disarium number or not, and also a Python program to implement the same. If you want to get the Python program to print all the Disarium numbers within a given range, you are at the right place.

## What is a Disarium number?

If the sum of the individual digits of a number raised to the power of its position equals the number, then it is a Disarium number. To understand what a Disarium number is, we will take an example-

- Suppose, the number is 135. Here, the positions of digits 1, 3, and 5 are 1, 2, and 3 respectively.

So, 1^1 + 3^2 + 5^3 = 1 + 9 + 125 = 135

So, the result is equal to the number we have taken. Therefore, the number**135 is a Disarium number**.

Let us take another example for a better understanding of the above concept.

- Suppose, the number is 130. Here, the positions of digits 1, 3, and 0 are 1, 2, and 3 respectively.

So, 1^1 + 3^2 + 0^3 = 1 + 9 + 0 = 10

So, the result is not equal to the number we have taken. Therefore, the number**130 is not a Disarium number**.

## Method to find if a number is a Disarium number

So, we will learn to check whether a number is a Disarium number or not. We can check if a number is a Disarium number by following the steps given below-

**Steps to calculate the number of digits in the number-**- Divide the number by 10.
- Increment the digit count by 1.
**Steps to check whether the number is a Disarium number-**- Declare a variable to store the sum.
- Calculate the remainder after dividing the number by 10.
- Multiply the remainder by the number of digits.
- Add the result to the sum.
- Divide the number by 10.
- Decrement the number of digits by 1.
- Check if the sum is equal to the number.
- If the comparison results true, the number is a Disarium number.
- Otherwise, the number is not a Disarium number.

## Python program to print all Disarium numbers within the given range

Now, we will see a Python program to display Disarium numbers within the range. Here, we will take the lower and upper bound of the range from the user. Using a *‘for’* loop, we traverse from lower bound to upper bound and check whether the number is a Disarium number or not. The Python program is as follows-

def check_disarium(number): no_digits = 0 num = number while(num != 0): no_digits = no_digits + 1 num = num//10 remainder = 0 disarium_num = 0 while(number > 0): remainder = number % 10 disarium_num = disarium_num + (remainder**no_digits) number = number//10 no_digits = no_digits - 1 return disarium_num lower = int(input("ENTER LOWEST NUMBER : ")) upper = int(input("ENTER HIGHEST NUMBER : ")) print("DISARIUM NUMBERS WITHIN RANGE({},{}) ARE -".format(lower,upper)) for i in range(lower,upper+1): if check_disarium(i) == i: print(i,end=" ")

#### Python program output

The above Python program prints Disarium numbers within the range given by the user. The output of the program is-

siddharth@siddharth-Lenovo-Y520-15IKBN:~/python$ python3 disarium.py ENTER LOWEST NUMBER : 1 ENTER HIGHEST NUMBER : 200 DISARIUM NUMBERS WITHIN RANGE(1,200) ARE - 1 2 3 4 5 6 7 8 9 89 135 175 siddharth@siddharth-Lenovo-Y520-15IKBN:~/python$

In this sample execution, the lower and upper bound entered by the user is 1 and 200 respectively. So, in the range (1, 200), there are 12 Disarium numbers- 1, 2, 3, 4, 5, 6, 7, 8, 9, 89, 135, 175.

Also read: Print all the peaks and troughs in a list of Integers in Python

## Leave a Reply