繁体   English   中英

如何使用其主要因素和多重性获得输入的所有除数?

[英]how do i get all the divisors of an input using its prime factors and multiplicities?

几天来我一直在尝试解决这个问题,但我仍然无法得到正确的 output。 问题是这样的,例如,如果我使用数字 50,它有一个list [2, 5]作为其prime factors ,并且这些factors的相应multiplicities性如下[1, 2]

prime_factors = [2, 5]
multiplicities = [1, 2]

所以divisors应该有一个[1, 2, 5, 10, 25, 50]output但这就是问题所在,我如何创建一个function来获取某个input的所有divisors ,使用它的prime factors和它们的对应输入multiplicities

好吧,问题是“我如何编写函数”,所以也许这些建议可以帮助你:

  1. 得到简单的例子 您已经完成了这部分 - 您输入了 50 (prime_factors = [2, 5] multiplicities = [1, 2]) 和 [1, 2, 5, 10, 25, 50] 的 output。
  2. 尝试一步一步地在纸上做例子 - 试着弄清楚 output 是如何从输入中获得的。 例如,output 列表中的10来自prime_factors中的5的多重数乘以21次方。 尝试找出 output 列表中元素的 rest。 25从哪里来?
  3. 拿出 function 签名 - 想一想找出结果所需的最少信息是什么,结果应该有什么形式? 这应该很容易,因为您已经发布了定义明确的输入和 output 的示例。
  4. 尝试概括您使用示例执行的步骤。 - 当您为您的示例提出解决方案时,请尝试考虑另一个解决方案。 您将如何获得 40 或 60 的结果? 你能使用与 50 相同的模式吗?
  5. 写一些伪代码 - 以类似代码的方式编写您的想法。 如有必要,做一些循环,命名变量,稍微结构化你的代码。 这应该导致第四步的结果,但准备好用代码编写。
  6. 编写代码 - 由于您要在 Python 中编程,请将您的伪代码更改为 Python 之一。 根据您的技能,这一步可能会很困难,但是如果您走到这一步,这里的人会帮助您完成。

如果您被困在这些步骤中的任何一个上,这里的人会很乐意提供帮助,我们只需要有一个起点。 我建议写出 output 中的每个元素及其来源。 祝你好运!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM