from perms import perms
def dfac(n):
potential_factors = [9, 8, 7, 6, 4, 3, 2, 1]
factors = [9, 8]
n //= 72
while n != 1:
for f in potential_factors:
if n % f == 0 and f != 1:
factors.append(f)
n //= f
break
elif f != 1:
potential_factors = potential_factors[1:]
break
else:
return ['f']
return factors[::-1]
##############################################################################
version = 1
perms_length = len(perms)
index = 17701
def search(start: int):
for ones in range(start, index + 9144 * version, 9): # ignore this weird range
i = 1
for p in perms:
if len(dfac(int('1' * ones + p))) == 1:
print(f'{ones} ({i} / {perms_length})')
else:
cool = f'\n\n\nOnes: {ones}\nPerm: {p}\n\n\n'
print(cool)
exit()
i += 1
search(20077)
perms 是一个数字(作为字符串)的 113600 个排列的列表。我在每个排列的开头添加了一堆,并尝试将每个排列分解为个位数因子(dfac)。如果 dfac 未能将数字分解为 [9, 8, 7, 6, 4, 3, 2] 的任意组合,则在列表 ['f'] 中返回失败字符串。我如何将其与多处理分开以使其更快?