RosettaCodeData/Task/Prime-decomposition/Scala/prime-decomposition-4.scala
2019-09-12 10:33:56 -07:00

3 lines
257 B
Scala

import spire.math.SafeLong
import spire.implicits._
def pFactors(num: SafeLong): Vector[SafeLong] = Iterator.iterate((Vector[SafeLong](), num, SafeLong(2))){case (ac, n, f) => if(n%f == 0) (ac :+ f, n/f, f) else (ac, n, f + 1)}.dropWhile(_._2 != 1).next._1