In the previous article, we have discussed Python Program to Get Tangent value Using math.tan()
Disarium Number:
A Disarium number is one in which the sum of each digit raised to the power of its respective position equals the original number.
like 135 , 89, etc.
Here 1^1 + 3^2 + 5^3 = 135 so it is disarium Number
Examples:
Example1:
Input:
Given lower limit range = 7 Given upper limit range = 180
Output:
The disarium numbers in the given range 7 and 180 are: 7 8 9 89 135 175
Example 2:
Input:
Given lower limit range = 1 Given upper limit range = 250
Output:
The disarium numbers in the given range 1 and 250 are: 1 2 3 4 5 6 7 8 9 89 135 175
Program to Print all Disarium Numbers within Given range
Below are the ways to Print all Disarium Numbers within the given range.
Method #1: Using For Loop (Static input)
Approach:
- Give the lower limit range as static input and store it in a variable.
- Give the upper limit range as static input and store it in another variable.
- Loop from lower limit range to upper limit range using For loop.
- Inside the for loop take a variable say ‘num’ and initialize its value to the iterator value.
- Make a copy of the number so you can verify the outcome later.
- Make a result variable (with a value of 0) and an iterator ( set to the size of the number)
- Create a while loop to go digit by digit through the number.
- On each iteration, multiply the result by a digit raised to the power of the iterator value.
- On each traversal, increment the iterator.
- Compare the result value to a copy of the original number.
- Print if the given number is a disarium number.
- The Exit of the program.
Below is the implementation:
# Give the lower limit range as static input and store it in a variable. lowlim_range = 7 # Give the upper limit range as static input and store it in another variable. upplim_range = 180 print('The disarium numbers in the given range', lowlim_range, 'and', upplim_range, 'are:') # Loop from lower limit range to upper limit range using For loop. for m in range(lowlim_range, upplim_range+1): # given number num = m # intialize result to zero(ans) ans = 0 # calculating the digits digit_s = len(str(num)) # copy the number in another variable(duplicate) dup_numbr = num while (dup_numbr != 0): # getting the last digit remaindr = dup_numbr % 10 # multiply the result by a digit raised to the power of the iterator value. ans = ans + remaindr**digit_s digit_s = digit_s - 1 dup_numbr = dup_numbr//10 # It is disarium number if it is equal to original number if(num == ans): print(num, end=' ')
Output:
The disarium numbers in the given range 7 and 180 are: 7 8 9 89 135 175
Method #2: Using For Loop (User input)
Approach:
- Give the lower limit range as user input using the int(input()) function and store it in a variable.
- Give the upper limit range as user input using the int(input()) function and store it in another variable.
- Loop from lower limit range to upper limit range using For loop.
- Inside the for loop take a variable say ‘num’ and initialize it’s value to iterator value .
- Make a copy of the number so you can verify the outcome later.
- Make a result variable (with a value of 0) and an iterator ( set to the size of the number)
- Create a while loop to go digit by digit through the number.
- On each iteration, multiply the result by a digit raised to the power of the iterator value.
- On each traversal, increment the iterator.
- Compare the result value to a copy of the original number.
- Print if the given number is a disarium number.
- The Exit of the program.
Below is the implementation:
# Give the lower limit range as user input using the int(input()) function and store it in a variable. lowlim_range = int(input("Enter some Random number = ")) # Give the upper limit range as user input using the int(input()) function and store it in another variable. upplim_range = int(input("Enter some Random number = ")) print('The disarium numbers in the given range', lowlim_range, 'and', upplim_range, 'are:') # Loop from lower limit range to upper limit range using For loop. for m in range(lowlim_range, upplim_range+1): # given number num = m # intialize result to zero(ans) ans = 0 # calculating the digits digit_s = len(str(num)) # copy the number in another variable(duplicate) dup_numbr = num while (dup_numbr != 0): # getting the last digit remaindr = dup_numbr % 10 # multiply the result by a digit raised to the power of the iterator value. ans = ans + remaindr**digit_s digit_s = digit_s - 1 dup_numbr = dup_numbr//10 # It is disarium number if it is equal to original number if(num == ans): print(num, end=' ')
Output:
Enter some Random number = 1 Enter some Random number = 250 The disarium numbers in the given range 1 and 250 are: 1 2 3 4 5 6 7 8 9 89 135 175
Explore more instances related to python concepts from Python Programming Examples Guide and get promoted from beginner to professional programmer level in Python Programming Language.