【问题标题】:Pollard Rho factorization method implementationPollard Rho 分解方法实现
【发布时间】:2012-05-31 08:36:58
【问题描述】:

每次我使用 Pollard Rho 分解方法分解一个数字时,是否有必要在 Pollard Rho 分解之前检查它的素数?如果是,那么每次我想分解任何数字时,我都必须实施米勒拉宾的素性检验或任何素性检验,而且我必须处理强伪素数,这不是很复杂吗?有没有简单且更快的方法来处理这个问题? (我对最多 10 位的数字使用这些测试)

【问题讨论】:

  • 如果你有内存,筛子是最快的测试十位数(如果我计算正确,则为 600 MB),否则我会选择一个简单的试验分区,不需要 miller rabin :-)
  • 如果我必须在 100 MB 内存中找到所有数字因子怎么办?
  • 我想找出最多20位数的给定数的所有因数?
  • 一开始 10 位就足够了,为什么你突然想要 20 位?

标签: algorithm primes factorization


【解决方案1】:

是的,在应用 Pollard Rho 之前,您必须检查您要分解的数字是复合数。如果它是素数,gcd 步骤将始终返回 1,因为素数始终与其他所有数互质,并且 Pollard Rho 将永远运行而没有结果。

对于最多十位数的数字,Pollard Rho 不是必需的。简单的试除法就足够快了,因为你只需要小于 100000 的素数,而且只有 9592 个。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-11-12
    • 1970-01-01
    • 2011-11-24
    • 1970-01-01
    • 1970-01-01
    • 2011-08-27
    • 2014-09-07
    • 2016-02-01
    相关资源
    最近更新 更多