如何解决使数组等于lcm
给出一个数组a1,a2,a3 ..尺寸n。值ai = i。在一秒钟内,我们可以取其中任意两个取lcm(ai,aj)。我们必须找到使数组相等的最短时间。任何人都可以提供帮助吗?
解决方法
搜索倍数。
例如,如果您有2而您有4,则可以忽略2中的任何lcm。如果您有2、4、8、16和32,则可以忽略任何涉及2、4、8和16的lcm。 ,因为一个涉及32的lcm已经可以覆盖所有其他数字。
由于序列从1一直到 n ,而且您知道 n (因此一个整数),因此可以非常快地(恒定时间)找到最大的除数。 n / i 部门应告知 i 的最大除数。
减少您需要使用的数字将减少您花费lcms的时间。
简而言之:对于每个数字i
,如果存在x = k * i
和k > 1
的数字x < n
,则可以忽略i
。 x
也是如此。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。