python对整数进行因式分解_对整数列表中的整数进行因式分解

我正在尝试编写一个脚本来确定是否可以将一个整数值分解为一个整数列表。我的方法是在recursivley中搜索有效的因子分解,effectiveley在可能的因子树中执行DFS(在下面的代码中)。有没有可能做一个贪婪的算法,找到这个快?我的想法是继续在列表中搜索余数中最大的因子,直到找到有效的因子分解。在这种情况下,这是正确的算法吗?如果不是,这个问题是NP问题吗?在

用Python编写的解决问题的代码:def can_factorize_in_list(n, list):

# Determines whether it is possible to factorize 'n' in 'list'

# Filter the list to only include the values which are factors

fac_list = [p for p in list if (n % p is 0)]

for x in fac_list:

if n % x is 0:

if n/x is 1:

# If we end up at 1, we have a valid factorization

return 1 # End state

else:

# If we do not end at 1, keep trying

if can_factorize_in_list(n/x, fac_list):

return 1

else:

continue

return 0

编辑:例如,给定整数30和list[2,3,5,8],算法应该返回True,因为30=2*3*5。不需要使用列表中的所有元素,因为因子可以多次使用。在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值