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

1 Answer

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

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

    return maxPFact
}

fun main() {
    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 by avibootz
...