神奇算式
由4个不同的数字,组成的一个乘法算式,它们的乘积仍然由这4个数字组成。
比如:
210 x 6 = 1260
8 x 473 = 3784
27 x 81 = 2187
都符合要求。
如果满足乘法交换律的算式算作同一种情况,那么,包含上边已列出的3种情况,一共有多少种满足要求的算式。
请填写该数字,通过浏览器提交答案,不要填写多余内容(例如:列出所有算式)。
count = 0
for i in range(1, 988):
for j in range(i, 988): # 避开乘法交换律
str_i = str(i)
str_j = str(j)
if len(str_i)+len(str_j) == 4: # 等式左边4个数
set1 = set()
for k in str_i:
set1.add(k)
for k in str_j:
set1.add(k)
if len(set1) == 4: # 等式左边4个数要不同
num = i*j
str_num = str(num)
if len(str_num) == 4: # 等式右边4个数
set2 = set()
for k in str_num:
set2.add(k)
if len(set2) == 4: # 4个数要不同
for t in set2:
if t not in set1:
break
else:
count += 1
print(count)