-1

在 ML 中,我想得到一个数字的主要除数。我该怎么做,我是初学者。

4

2 回答 2

2

使用简单的试除法,它以 开始p=2并重复除以n,并随着它的进行p递增p

open LargeInt  (* if you want to work with huge numbers like 5000000000 *)
infix 7 quot rem
val prime_factors =
  let fun trial_division p n =
    if p > n then nil else
      if n rem p = 0
        then p :: trial_division  p      (n quot p)
        else      trial_division (p + 1)  n
  in trial_division 2 end
于 2009-06-26T21:15:09.113 回答
1

有几种通用算法可以找到整数的主要除数:参见wikipedia。带有简单素性检验的试除法是最容易理解的。

在伪代码中查找或设计算法;只有这样才担心如何将其放入 ML 中。

于 2009-05-18T10:18:50.030 回答