在本教程中,我们将学习一个 Python 程序来查找给定的数字是否是强数。
什么是强数?
强数是一个特殊的数,它的所有数字阶乘的和应该等于数本身。
找出给定的数是否强。我们从给定的数字中挑选每个数字,并找到它的阶乘,我们将对数字的每个数字都这样做。
一旦我们得到了所有数字的阶乘,那么我们就得到阶乘的和。如果和等于给定的数,那么给定的数是强的,否则不是。
比如- 给定的数字是 145,我们要挑每个数字,求阶乘 1!= 1, 4!= 24 和 5!= 120.
现在,我们将对阶乘求和,我们得到 1+24+120 = 145,这与给定的数字完全相同。所以我们可以说 145 是一个强数。
我们得到了强数的逻辑。现在使用 Python 程序实现。
问题处理方式
- 要求用户输入一个整数。
- 使用
While循环找到数字中每个数字的阶乘。 - 现在,总结所有的阶乘数。
- 检查它是否等于给定的数字。
- 打印输出。
- 出口
样本输入:数= 132
样本输出:给定的数字不是一个强数
说明: 1!+ 3!+ 2!= 9,不等于 132
样本输入:数= 145
样本输出:给定的数字是一个强数。
Python 程序:寻找强数
下面是 Python 程序打印给定数字是强还是非强的代码。
示例-
# Variable to store sum of the numbers
sum=0
# Ask user to enter the number
num=int(input("Enter a number:"))
# temporary variable store copy of the original number
temp=num
# Using while loop
while(num):
# intialize with 1
i=1
# fact variable with 1
fact=1
rem=num%10
while(i<=rem):
fact=fact*i # Find factorial of each number
i=i+1
sum=sum+fact
num=num//10
if(sum==temp):
print("Given number is a strong number")
else:
print("Given number is not a strong number")
输出:
Enter a number: 145
Given number is a strong number.
说明:
在上面的代码中
- 我们声明了一个可变整数值 num 用于输入一个数字。
- 用零定义和变量。
- 临时变量的 num 值的副本。
- 在第一个
While循环中,确保给定的数字大于 0。 - 在
While循环中,拆分数字并分配变量以找到每个数字的阶乘。 - 在第二个
While循环(嵌套While循环)中,找到每个数字的阶乘。
假设用户输入值= 145,sum = 0
分配初始值
i = 0
fact = 0
temp = num
temp = 145
现在理解循环迭代。第一次迭代
rem = temp % 10
rem = 145 % 10 = 5
现在,我们进入了嵌套的 While循环。它计算出 5 的阶乘是 120。
sum = sum + 120> 0+120
sum = 120
temp = temp//10 = 14
temp = 14
第二次迭代
temp = 14,
sum = 120
rem = 14 % 10 = 4
现在,它进入嵌套的 While循环。这里,它计算 4 = 24 的阶乘。
sum = 120 + 24
sum = 144
temp = 14//10
temp = 1
第三次迭代
temp = 1
sum = 144
rem = 1 % 10 = 0
1 的阶乘是 1
sum = 144 + 1
sum = 145
temp = 1 / 10
temp = 0
这里温度= 0,所以 While循环条件失败。
如果(num == sum)现在,我们检查用户输入的数字是否正好等于 sum。如果这个条件返回真,那么它是强数,否则它不是强数。
我们已经使用 While循环完成了程序。我们也可以使用进行循环来查找给定的数字是否强。
使用 for循环的强名称
我们还可以找到用于循环的强数。逻辑与上述程序相同,While循环由 for循环代替。
示例-
# Python Program to find Strong Number
num = int(input(" Enter the Number:"))
sum = 0
temp = num
while(temp > 0):
fact = 1
rem = temp % 10
for i in range(1, rem + 1):
fact = fact * i
print("Factorial of %d = %d" %(rem, fact))
sum = sum + fact
temp = temp // 10
print("\n Sum of Factorials of a Given Number %d = %d" %(num, sum))
if (sum == num):
print(" The given number is a Strong Number")
else:
print(" The given number is not a Strong Number")
输出:
Enter the Number:145
Factorial of 5 = 120
Factorial of 4 = 24
Factorial of 1 = 1
Sum of Factorials of a Given Number 145 = 145
The given number is a Strong Number
Python 程序:用阶乘函数求强数
Python math模块提供内置的math模块。通过使用这种方法,我们可以省略使用嵌套 While循环。
示例-
# Python Program to find Strong Number
import math
num = int(input(" Enter the Number:"))
sum = 0
temp = num
while(temp > 0):
rem = temp % 10
fact = math.factorial(rem) # Using the buitlt-in factorial() function
print("Factorial of %d = %d" %(rem, fact))
sum = sum + fact
temp = temp // 10
print("\n Sum of Factorials of a Given Number %d = %d" %(num, sum))
if (sum == num):
print(" The given number is a Strong Number")
else:
print(" The given number is not a Strong Number")
输出:
Enter the Number: 145
Factorial of 5 = 120
Factorial of 4 = 24
Factorial of 1 = 1
Sum of Factorials of a Given Number 145 = 145
The given number is a Strong Number
解释-
在上面的代码中,
我们使用了阶乘()函数,并传递了一个提醒作为参数。
在
While循环的第一次迭代中,它返回提醒 5 并传递给阶乘 5。它将一直持续到温度值大于零。我们不需要使用另一个
While循环。
原创文章,作者:O5HM0,如若转载,请注明出处:https://www.506064.com/n/129819.html
微信扫一扫
支付宝扫一扫