Python 程序检查一个数字是否为间谍数

编写一个 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 Program to Check a Number is a Spy 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