6174猜想:对任意各位数字不相同的四位数,使用各位数字能组成的最大数减去能组成的最小数,对得到的差重复操作,最终能得到6174,并且这个操作最多不会超过7次。
运用的知识点
- 内置函数
join(),sorted(),reversed() lambda表达式itertools库中的combinations()函数
#!/usr/bin/env python3
# coding:utf8
import itertools
s=list(itertools.combinations(range(10),4))
flag=False
for i in s:
snum=''.join(list(map(lambda x: str(x),i)))
count=0
flag=False
for j in range(7):
l=sorted(snum)
min=int(''.join(l))
max=int(''.join(reversed(l)))
if(max-min==6174):
flag=True
break
else:
snum=str(max-min)
if(flag==False):
break
if(flag):
print('6174猜想正确!')
else:
print('6174猜想错误!')
该博客通过Python代码验证了6174猜想,即对于任意四位数,按数字大小排列组成最大数和最小数相减,重复此过程最终会得到6174,且不超过7步。代码中运用了内置函数如sorted()和reversed(),以及itertools库的combinations()函数。
2092





