您的位置:

Python 程序:阿姆斯特朗数

如何使用 While 循环、For 循环、函数和递归为阿姆斯特朗数编写 Python 程序?。我们还向您展示了打印 1 到 n 之间的阿姆斯特朗数字的 Python 程序

Python 中的阿姆斯特朗数

如果给定的数字等于该整数中每个数字的 n 次方之和,那么它可以是 Python 中的阿姆斯特朗数。比如 370 就是阿姆斯特朗数。

370 中的个别数字= 3

370 = 3г+7г+0г

= 27 + 343 + 0 = 370

以下步骤向您展示了在 Python 中检查阿姆斯特朗编号的常见方法

Python 步骤中的阿姆斯特朗数:

  1. 用户必须输入任何数字。
  2. 计算单个数字的总数(例如,370 表示 3)。
  3. 将给定的数字分成独立的数字(例如,将 370 分成 3、7 和 0)。
  4. 计算每个个体的 n 次方,并将这些数相加。
  5. 将原始值与总和值进行比较。
  6. 如果他们完全匹配,那么它是一个阿姆斯特朗数,否则它不是。

使用 While 循环的阿姆斯特朗数 Python 程序

这个 Python 程序允许用户输入任何正整数。然后,这个 Python 程序使用 While 循环检查一个数字是否是阿姆斯特朗数

Number = int(input("\nPlease Enter the Number to Check for Armstrong: "))

# Initializing Sum and Number of Digits
Sum = 0
Times = 0

# Calculating Number of individual digits
Temp = Number
while Temp > 0:
           Times = Times + 1
           Temp = Temp // 10

# Finding Armstrong Number
Temp = Number
while Temp > 0:
           Reminder = Temp % 10
           Sum = Sum + (Reminder ** Times)
           Temp //= 10
if Number == Sum:
           print("\n %d is Armstrong Number.\n" %Number)
else:
           print("\n %d is Not a Armstrong Number.\n" %Number)

Python 中的 Armstrong Number 使用 While 循环输出

python 程序中的阿姆斯特朗数允许用户输入任意正整数,然后将其赋给变量 number。

接下来,我们将原始值赋给临时变量。它有助于保留我们的原始值,然后对 Temp 变量进行所有操作。

第一个 While 循环确保给定的数字大于 0,While 循环中的语句会拆分数字,并计算给定整数中各个数字的总数。如果您不理解 Python 程序的逻辑,请参考 Python 程序查找数字文章中的位数。

python 程序中阿姆斯特朗数的第二个 While 循环确保给定的数字大于 0。让我们看看迭代循环的工作原理

当温度> 0 时:提醒=温度% 10 总和=总和+(提醒**次)温度/= 10

用户为此 Python 程序输入的值,用于 Armstrong Number : Number= 9474,Sum = 0

温度=数字 温度= 9474

第一次迭代

提醒= Temp %10 提醒= 9474 % 10 = 4

总和=总和+幂(提醒,次数)

对于这个 Python 的例子,Times =4,因为 9474 中的位数=4。所以,

Sum = Sum +(提醒提醒提醒提醒) Sum = 0+(4 4 4 4)=>0+256 =>Sum = 256T3

温度=温度/10 => 9474 /10 温度= 947

注:如果数字计数为 5,则提醒乘以 5 倍。

第二次迭代:从 Python 程序中,对于 Armstrong Number 第一次迭代,Temp 和 Sum 的值都更改为 Temp = 163,Sum = 256

提醒=温度%10 提醒= 947 % 10 = 7

总和= 256 + (7 7 7 * 7) => 256 + 2401 总和= 2657

Temp = Temp/10 = > 163/10 Temp = 94

第三次迭代:从第二次迭代开始,Temp = 94,Sum = 2657。

提醒= 94 % 10 = 4

求和= 2657 + (4 4 4 * 4) => 2657 + 256 求和= 2913T2T4】

温度= 94 /10 = 9

阿姆斯特朗数第四次迭代的 Python 程序

从第三次迭代开始,Temp = 9,Sum = 2913 的值

提醒= 9 % 10 = 0

总和= 2913+(9 9 9)= > 2913+6561 总和= 9474

Temp = 9/10 = 0

这里 Temp = 0,所以 while 循环条件失败。

if(Number = = Sum)–条件检查用户输入的是否完全等于 Sum。如果这个条件为真,那么它是阿姆斯特朗数,否则它不是。

让我检查一下(数字= =总和)

如果(9474 = = 9474)–真,表示阿姆斯特朗

注意:如果您发现 Python Armstrong 数字低于 1000,请删除 while 循环以计算数字中的位数,然后替换下面的代码

Sum = Sum + (Reminder ** Times);

With

Sum = Sum + (Reminder * Reminder * Reminder)

用于循环的阿姆斯特朗数的 Python 程序

该 Python 程序允许用户输入任意正整数,然后,该程序使用 Python For Loop 检查一个数字是否为 Armstrong Number

Num = int(input("\nPlease Enter the Value : "))

Sum = 0
Times = 0

Temp = Num
while Temp > 0:
           Times = Times + 1
           Temp = Temp // 10

Temp = Num
for n in range(1, Temp + 1):
           Reminder = Temp % 10
           Sum = Sum + (Reminder ** Times)
           Temp //= 10

if Num == Sum:
           print("\n %d is Armstrong.\n" %Num)
else:
           print("\n %d is Not a Armstrong.\n" %Num)
 Please Enter the Value : 371

 371 is Armstrong.

Please Enter the Value : 4458

 4458 is Not a Armstrong. 

我们刚刚用 For 循环替换了上面 Python 例子中阿姆斯特朗数中的 While 循环。如果您不理解 for 循环,请参考这里的 For 循环文章: Python For 循环

使用函数的阿姆斯特朗数的 Python 程序

这个 Python 程序允许用户输入任何正整数。然后,这个程序检查一个数字是否是阿姆斯特朗数或不使用功能

def Armstrong_Number(Number):
           Sum = 0
           Times = 0

           # Calculating individual digits
           Temp = Number
           while Temp > 0:
                      Times = Times + 1
                      Temp = Temp // 10

           Temp = Number
           for n in range(1, Temp + 1):
                      Reminder = Temp % 10
                      Sum = Sum + (Reminder ** Times)
                      Temp //= 10
           return Sum

#User Input
Number = int(input("\nPlease Enter the Number to Check for Armstrong: "))

if (Number == Armstrong_Number(Number)):
    print("\n %d is Armstrong.\n" %Number)
else:
    print("\n %d is Not an Armstrong.\n" %Number)
 Please Enter the Number to Check for Armstrong: 153

 153 is Armstrong.

>>> 

Please Enter the Number to Check for Armstrong: 2256

 2256 is Not an Armstrong.

在这个关于阿姆斯特朗数的 Python 程序示例中,我们定义了以下函数来执行所有必要的计算并返回 Sum。

def Armstrong_Number(Number):

当编译器到达 If 语句中的以下代码时,编译器立即跳转到上面指定的函数。

Armstrong_Number(Number)

我们已经解释了上面的逻辑例子。

用递归实现阿姆斯特朗数的 Python 程序

这个程序允许我们输入任何正整数。接下来,这个 Python 程序使用递归概念检查一个数字是否是阿姆斯特朗。

Sum = 0
Times = 0

def Count_Of_Digits(Number):
           global Times
           if(Number > 0):
                      Times = Times + 1
                      Count_Of_Digits(Number // 10)
           return Times

def Armstrong_Number(Number, Times):
           global Sum
           if(Number > 0):
                      Reminder = Number % 10
                      Sum = Sum + (Reminder ** Times)
                      Armstrong_Number(Number //10, Times)
           return Sum

Number = int(input("\nPlease Enter the Number : "))

Times = Count_Of_Digits(Number)
Sum = Armstrong_Number(Number, Times)
if (Number == Sum):
    print("\n %d is Armstrong.\n" %Number)
else:
    print("\n %d is Not a Armstrong.\n" %Number)
 Please Enter the Number : 153

 153 is Armstrong.

>>> 

Please Enter the Number : 259

 259 is Not a Armstrong.

在这个阿姆斯特朗数的 Python 程序示例中,我们定义了两个递归函数。下面的函数接受整数值作为参数值,并递归地计算一个数字中各个数字的总数。

def Count_Of_Digits(Number):

以下函数接受两个整数值作为参数值。它执行所有必要的计算并返回 Sum。

def Armstrong_Number(Number, Times):

阿姆斯特朗数的 Python 程序中的以下语句有助于用更新的值递归调用函数。如果您错过了此语句,那么在完成第一行后,它将终止。例如

Armstrong_Number(Number //10, Times)

数量= 153

那么输出= 27

让我们看看上面指定的功能 里面的 If 语句

如果(数字> 0),检查数字是否大于 0。对于递归函数,在递归使用函数之前放置一个条件是很重要的。否则,我们最终会陷入无限执行(就像无限循环一样)。

寻找 1 到 n 之间的阿姆斯特朗数的 Python 程序

该程序允许您输入最小值和最大值。这个 Python 程序返回介于最小值和最大值之间的阿姆斯特朗数。

python 程序中阿姆斯特朗数的前两个语句允许用户输入最小值和最大值。

循环的Python有助于最小和最大变量之间的迭代。迭代从最小值开始,然后不会超过最大值变量。

if(Number = = Sum)-–条件检查该整数中每个数字的幂 N 之和是否等于给定的数字。当条件为真时,它是阿姆斯特朗,否则它不是。

如果该条件为真,则打印该数字。

Minimum = int(input("Please Enter the Minimum Value: "))
Maximum = int(input("\n Please Enter the Maximum Value: "))

for Number in range(Minimum, Maximum + 1):
           Sum = 0
           Times = 0

           Temp = Number
           while Temp > 0:
                      Times = Times + 1
                      Temp = Temp // 10

           Temp = Number
           while Temp > 0:
                      Reminder = Temp % 10
                      Sum = Sum + (Reminder ** Times)
                      Temp //= 10
           if Number == Sum:
                      print(Number)

阿姆斯特朗的输出从 10 到 10000

Please Enter the Minimum Value: 10

 Please Enter the Maximum Value: 10000
153
370
371
407
1634
8208
9474