python - 如何打印所有结果?
问题描述
这里的问题是获得相当大的数字 17309205 的所有 4 对因子。结果应该是
{1,1,1,17309205}
{1,1,3,5769735} etc..
我尝试了 4 个嵌套的 for 循环,但时间太长了,所以我尝试了不同的想法。
我的思维方式是找到每对可能的因素对,然后将其过滤掉那些包含 4 对的因素。但现在我只得到一个结果。而且结果也没有以应有的方式打印。
def s(target, numbers,memo={}):
if target == 0:
return 0
if target == 1:
return 1
if target < 0:
pass
if target in memo:
return memo[target]
result = []
for n in numbers:
if target%n !=0:
pass
else:
dominator = target/n
result = s(dominator, numbers, memo)
memo[target] = [result,[n,dominator]]
return memo[target]
v = list(range(2,17309205))
print(s(17309205,v))
解决方案
我可以用下面的代码得到想要的结果,但是如果目标太大,问题就会太慢。
target = 16
for a in range(1,target+1):
for b in range(1,target+1):
for c in range(1, target+1):
for d in range(1, target+1):
if a<=b<=c<=d and a*b*c*d == target:
print (a,b,c,d)
推荐阅读
- python - 使用 Cloud Function 将数据加载到 Google Cloud Storage 和 BigQuery
- r - 如何在字符串末尾拆分数值,然后将 1.4 x 10*4 转换为 1.4E4?
- postgresql - 运行 Chainlink 节点 - 远程 DATABASE_URL 配置 PostgreSQL 问题
- python - 如何在嵌入上制作多个网址?(discord.py)
- swiftui - 如何在 SwiftUI 中使用 @AppStorage 存储 EnumTypes
- python - 如何识别图像中的虚线?
- python - 在Flask中建立many2many关系时出错
- python - 在python中使用for循环时出现JSONDecodeError
- excel - VBA:完成矩阵
- excel - 没有此类元素错误。使用 VBA 找不到 XPath 的元素