How to find the largest prime factor of a number in Scala

1 Answer

0 votes
object LargestPrimeFactor {
  def largestPrimeFactor(n: Long): Long = {
    var num = n
    var div = 2L
    var maxPFact = -1L

    while (num != 0) {
      if (num % div != 0) {
        div += 1
      } else {
        maxPFact = num
        num /= div // Integer division
        if (num == 1) {
          return maxPFact
        }
      }
    }

    maxPFact
  }

  def main(args: Array[String]): Unit = {
    println(largestPrimeFactor(124))  // 2 x 2 x 31
    println(largestPrimeFactor(288))  // 2 x 2 x 2 x 2 x 2 x 3 x 3
    println(largestPrimeFactor(1288)) // 2 x 2 x 2 x 7 x 23
    println(largestPrimeFactor(100000000)) // 2, 2, 2, 2, 2, 2, 2, 2, 5, 5, 5, 5, 5, 5, 5, 5
  }
}

  
     
/*
run:
  
31
3
23
5

*/

 



answered Apr 16, 2025 by avibootz

Related questions

...