用于检查阿姆斯壮数的Python程序
给定一个数 x,判断给定数是否是 Armstrong 数。 n 位数的正整数称为n阶 Armstrong 数(阶数为位数)如果。
abcd... = pow(a,n) + pow(b,n) + pow(c,n) + pow(d,n) + ....
例子:
Input : 153
Output : Yes
153 is an Armstrong number.
1*1*1 + 5*5*5 + 3*3*3 = 153
Input : 120
Output : No
120 is not a Armstrong number.
1*1*1 + 2*2*2 + 0*0*0 = 9
Input : 1253
Output : No
1253 is not a Armstrong Number
1*1*1*1 + 2*2*2*2 + 5*5*5*5 + 3*3*3*3 = 723
Input : 1634
Output : Yes
1*1*1*1 + 6*6*6*6 + 3*3*3*3 + 4*4*4*4 = 1634
Python
# Python program to determine whether
# the number is Armstrong number or not
# Function to calculate x raised to
# the power y
def power(x, y):
if y == 0:
return 1
if y % 2 == 0:
return power(x, y // 2) * power(x, y // 2)
return x * power(x, y // 2) * power(x, y // 2)
# Function to calculate order of the number
def order(x):
# Variable to store of the number
n = 0
while (x != 0):
n = n + 1
x = x // 10
return n
# Function to check whether the given
# number is Armstrong number or not
def isArmstrong(x):
n = order(x)
temp = x
sum1 = 0
while (temp != 0):
r = temp % 10
sum1 = sum1 + power(r, n)
temp = temp // 10
# If condition satisfies
return (sum1 == x)
# Driver code
x = 153
print(isArmstrong(x))
x = 1253
print(isArmstrong(x))
Please refer complete article on Program for Armstrong Numbers for more details!
在评论中写代码?请使用 ide.geeksforgeeks.org,生成链接并在此处分享链接。