|
|
1
5
这主要是一道数学题。你可以提取一个数的所有素数因子,得到一个素数及其指数的列表,即216000=2 6个 三 *5个 三 . 然后取指数的GCD:GCD(6,3,3)=3。把指数除以GCD得到这个数的最小根,2 *3个 1个 1个 =60。然后因子3的GCD因子为1和3。有一种方法可以将该数字表示为GCD的每个因子的整数幂。你可以用(60)来表示 三 1个 或(60 1个 三 . 编辑:修正了数学错误。 |
|
|
2
2
你甚至有一个方便的停止条件-当根低于2时,你可以停止。也就是说,算法:
此算法将始终终止。 |
|
|
3
1
我相信这个问题相当于 Integer factorization 问题。
我这么说是因为我们可以把任何复合数转换成素数的唯一乘积
更新: 4个 6个
我们把它转化为素因子的幂
2个
.
|
|
|
4
0
给定结果,可以确定可能的最大指数。
这也适用于不是2:19683的幂大于2^14的结果,所以你不会看到任何大于14的指数。 现在你可以取你的数字,从上指数向2(最小指数)递减。对于每个试验指数exp,取结果的exp th根;如果它是一个干净的整数,那么您就找到了一个解决方案。
这种方法的优点是,一旦设置好了,就可以运行一个简单的循环,完成后就可以得到所有的结果。 |
|
|
5
0
最后我自己解决了这个问题。使用一个简单的整数分解算法,我的解决方案看起来像 this Pollard's rho algorithm 编辑: |
|
AstralHex · 矩阵乘法代码工作不正常 1 年前 |
|
|
Fishie · 作为类成员的智能指针是否仍然自动释放?[关闭] 1 年前 |
|
|
Die4Toast · 递归调用成员箭头运算符-> 1 年前 |
|
|
Anka Hanım · 关于结构和动态数组地址的问题 1 年前 |