找到最小素数因子的函数

时间:2017-10-19 15:50:14

标签: factorization pari pari-gp

PARI / GP是否具有查找t_INT的最小素因子或以其他方式执行整数的部分因式分解的函数?

例如,如果我有号码:

a=261432792226751124747858820445742044652814631500046047326053169701039080900441047539208779404889565067

factor(a)需要很长时间,因为a包含两个巨大的素因子。但是,很容易发现17a的除数。

当然,在这种情况下,我本可以使用forprime(p=2,,a % p == 0 && return(p))或类似的试验部门来找到因素。但是,如果最小因素有20个十进制数字,比如说那是不切实际的,我可能想在这种情况下使用factor的复杂方法。

所以如果我可以用某种旗帜称factor说我会对任何部分因素化感到满意,或者说我所关心的是最小的非平凡除数等等,那将是理想的。< / p>

1 个答案:

答案 0 :(得分:1)

我的问题的一个非常简单的部分答案是factor有一个可选的参数lim,所以你可以这样说:

factor(a, 10^5)

例如,只有10^5以下的因子会出现在结果中(大于10^5的辅助因子可以是复合的!)。

factorint的可选参数完全不同,有点&#34;标记&#34;,并且它不允许指定限制。那可能让我很困惑。举个例子:

factorint(a, 1+8)

选择标志1(&#34;避免MPQS&#34;)和8(&#34;不要运行最终的ECM&#34; )。