如何实现库GMP.mpz以在Pike中生成大数字?

时间:2017-09-28 22:04:49

标签: factorial gmp bignum pike

当我输入命令时:

  

POW(9,999999);

我获得以下内容:

Bad argument 1 to pow(). Exponent too large.
Unknown program: pow(Gmp.mpz(999999))
-:1: 9->pow(@0=Gmp.mpz(999999))
HilfeInput:1: HilfeInput()->___HilfeWrapper()

有人能够指出我如何有效地实施库GMP.mpz,例如,计算9 ^ 999999或因子500000。 提前谢谢你的帮助。

祝你好运

2 个答案:

答案 0 :(得分:0)

自从我使用梭子鱼以来已经15年了,所以这只是可能的答案:

1)也许你需要使用bignum支持编译的派克:https://pike.lysator.liu.se/docs/man/chapter_3.html#1然后你可以使用
pow()具有任意整数。

2)或许也许可以使用Math模块。

答案 1 :(得分:0)

此限制似乎在Pike来源中硬编码:static void mpzmod_pow(INT32 args)中的src/modules/Gmp/mpz_glue.c。可从此处获得的资源: Pike sources