编写一个 Python 程序,使用 for 循环检查一个数字是否是间谍数。例如,如果一个数字的各位数字之和等于各位数字之积,那么它就是一个间谍数。在这个 Python 间谍数示例中,我们使用了一个 while 循环将数字分解为各位数字,并找到它们的和与积。if 语句检查和是否等于积,如果为真,则为间谍数。
Number = int(input("Enter the Number to Check Spy Number = "))
Temp = Number
Sum = 0
prod = 1
while Temp > 0:
lastDigit = Temp % 10
Sum = Sum + lastDigit
prod = prod * lastDigit
Temp = Temp // 10
print("The Sum of the Digits = %d" %Sum)
print("The Product of the Digits = %d" %prod)
if Sum == prod:
print("\n%d is Spy Number." %Number)
else:
print("%d is Not a Spy Number." %Number)

Python 程序使用递归或递归函数检查一个数字是否为间谍数。
total = 0
prod = 1
reminder = 0
def spyNumber(number):
global reminder, total, prod
if(number > 0):
reminder = number % 10
total = total + reminder
prod = prod * reminder
spyNumber(number // 10)
return total, prod
else:
return 0
Number = int(input("Enter the Number = "))
total, prod = spyNumber(Number)
print("The Sum of the Digits = %d" %total)
print("The Product of the Digits = %d" %prod)
if total == prod:
print("\n%d is Spy Number." %Number)
else:
print("%d is Not." %Number)
Enter the Number = 1421
The Sum of the Digits = 8
The Product of the Digits = 8
1421 is Spy Number.
这个 程序 打印从 1 到 n 或在范围内的间谍数。
MinSpy = int(input("Please Enter the Minimum Value: "))
MaxSpy = int(input("Please Enter the Maximum Value: "))
for i in range(MinSpy, MaxSpy + 1):
Temp = i
Sum = 0
prod = 1
while Temp > 0:
lastDigit = Temp % 10
Sum = Sum + lastDigit
prod = prod * lastDigit
Temp = Temp // 10
if Sum == prod:
print(i, end = ' ')
Please Enter the Minimum Value: 1
Please Enter the Maximum Value: 10000
1 2 3 4 5 6 7 8 9 22 123 132 213 231 312 321 1124 1142 1214 1241 1412 1421 2114 2141 2411 4112 4121 4211