A magic number is that number whose repeated sum of its digits till we get a single digit is equal to 1. ## Steps to Check Magic Number in Python

1. Take a number as input (num).
2. Calculate the sum of digits of the input number.
3. Repeat step 2 until we get a single digit.
4. If resultant sum is equal to 1 then it is a Magic number else not.

We will calculate the sum of the digits until we get a single-digit number as the sum. To count the number of digits we will use math.log10()+1.

## Check Whether a number is a Magic Number in Python

```import math

num = int(input("Enter a Number \n"))
digitCount = int(math.log10(num))+1
sumOfDigits = 0

temp = num #copying num

#calculating sum of digits of temp(i.e num) until
#sumOfDigits is a single digit
while( digitCount > 1):

sumOfDigits = 0

while(temp > 0):
sumOfDigits += temp%10
temp = temp//10

temp = sumOfDigits
#count the digits of sumOfDigits
digitCount = int(math.log10(sumOfDigits))+1

#check whether sumOfDigits == 1
if(sumOfDigits == 1):
print("Magic number")
else:
print("Not a magic number")
```

Output

```Enter a Number
65
Not a magic number

Enter a Number
1729
Magic number
```

## Find all the Magic Numbers in the interval in Python

```import math

def magic_number(num):
digitCount = int(math.log10(num))+1
sumOfDigits = 0

temp = num #copying num

#calculating sum of digits of temp(i.e num) until
#sumOfDigits is a single digit
while( digitCount > 1):

sumOfDigits = 0

while(temp > 0):
sumOfDigits += temp%10
temp = temp//10

temp = sumOfDigits
#count the digits of sumOfDigits
digitCount = int(math.log10(sumOfDigits))+1

#check for sumOfDigits == 1
if(sumOfDigits == 1):
print(num)

low = int(input("Enter lower interval value \n"))
up = int(input("Enter upper interval value \n"))

print("Magic numbers between {x} and {y} are".format(x=low,y=up))

for num in range(low,up+1):
magic_number(num)
```
```Enter lower interval value
1
Enter upper interval value
100
Magic numbers between 1 and 100 are
10
19
28
37
46
55
64
73
82
91
100
```

Any doubts then comment below.

### This Post Has 2 Comments

1. venkat

please make it that after adding the digits in the number given the answer should be 1

1. 