n = 2021041820210418 ans = [] for i in range(1, int(n ** 0.5) + 1): if n % i == 0: ans.append(i) ans.append(n // i) case = set() for i in ans: for j in ans: for k in ans: if i * j * k == n: case.add((i, j, k)) print(len(case)) 这道题目简化来看就是将数分为三个因子,所以我们只要求得三个数乘起来等于所输入的数即可
为了避免计算时间过长,只需要除以 一半内的范围即可 超过就重复了
小细节就是 这样会有重复的情况, 可以用元组来储存数据进行去重