gpt4 book ai didi

c++ - 计算具有相同结果的给定对幂的不同项

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:13:24 24 4
gpt4 key购买 nike

为了理解这个问题,让我们首先考虑这些例子:

46 = (22)6 = 212 = (23)4 = 84 = 163 = 4096

因此,我们可以说 46,212,84 和 163 相同。

273 = 39 = 19683

因此,273 和 39 是相同的。

现在的问题是,对于任何给定的 ab 对,如何计算所有其他可能的(如果有的话)xy 其中,ab = xy。我对一个算法感兴趣可以在 C/C++ 中高效地实现。

例如:

如果输入是这样的:

4,6 所需的输出:(2,12),(8,4)

8,4 所需的输出:(2,12),(2,6)

27,3 所需的输出:(3,9)

12,6 所需输出:(144,3),(1728,2)

7,5 所需输出:不可能重复

最佳答案

这主要是一道数学题。您可以提取一个数的所有质因数,然后您将得到一个质数及其指数列表,即 216000 = 26 * 33 * 5 3。然后取指数的 GCD:GCD(6,3,3) = 3。将指数除以 GCD 得到数字的最小根,22 * 31 * 51 = 60。然后因式分解 GCD — 3 的因数为 1 和 3。有一种方法可以将数字表示为 GCD 的每个因数的整数幂。您可以将其表示为 (603)1 或 (601)3

编辑:修复了数学错误。

关于c++ - 计算具有相同结果的给定对幂的不同项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2152993/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com