|
发表于 2019-6-13 13:11:52
|
显示全部楼层
分子分母:[(49, 98), (19, 95), (16, 64), (26, 65)]
化简分母:[100.0]
用时:0.156001秒- import functools
- import time
- def get_strange_list():
- result = []
- s_list = []
- # x > y
- for x in range(11, 100):
- for y in range(11, x):
- if not x % 10 and not y % 10:
- continue
- for each_letter in str(x):
- if each_letter in str(y) \
- and x != y \
- and int(str(y).replace(each_letter, '', 1)) != 0 \
- and int(str(x).replace(each_letter, '', 1))/int(str(y).replace(each_letter, '', 1)) == x/y:
- s_list.append((y, x))
- s_list = list(set(s_list))
- # 求 x,y (x<y) 的最大公约数
- x = functools.reduce(lambda x1, x2: x1*x2, [each[1] for each in s_list])
- y = functools.reduce(lambda x1, x2: x1 * x2, [each[0] for each in s_list])
- tmp = y
- while True:
- if not y % tmp and not x % tmp:
- result.append(x/tmp)
- break
- else:
- tmp -= 1
- return s_list, result
- strange_list, result = get_strange_list()
- print("分子分母:{}\n化简分母:{}\n用时:{}秒".format(strange_list, result, time.process_time()))
复制代码 |
|