1.验证 6174 猜想。
1955 年,卡普耶卡(D.R.Kaprekar)对 4 位数字进行了研究,发现一个规律:
对任意各位数字不相同的 4 位数,使用各位数字能组成的最大数减去能组成的最小数,对得到的差重复这个操作,最终会得到 6174 这个数字,并且这个操作最多不会超过 7 次。请编写程序验证这个猜想,并输出计算次数。(难点在于如何求解最大数和最小数)
def Min_Number (a):
a=str(a)
arr=[]
for i in range(0,4):
arr.append(a[i])
arr.sort()
return int(''.join(arr))
def Max_Number(a):
a=str(a)
arr=[]
for i in range(0,4):
arr.append(a[i])
arr.sort(reverse=True)
return int(''.join (arr))
a=input("输入:")
while (int(a)!=6174):
a=Max_Number(a)-Min_Number(a)
print (a,end="")
- 判断水仙花数。
水仙花数(Narcissistic number)也被称为超完全数字不变数、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数(Armstrong number),水仙花数是指一个 3 位数,它的每个位上的数字的 3 次幂之和等于它本身(例如:1^3 + 5^3+ 3^3 = 153)。
设计循环程序,输入一个三位整数,判断是否是水仙花数,如果是水仙花数,则输出“是水仙花数”,否则输出“不是水仙花数”。
def IsFlower(num):
a=num//100
b=num//10%10
c=num%100%10
return a**3+b**3+c