function largestPrimeFactor(n: number) {
let div: number = 2;
let maxPFact: number = -1;
while (n !== 0) {
if (n % div !== 0) {
div++;
} else {
maxPFact = n;
n = Math.floor(n / div); // Integer division
if (n === 1) {
break;
}
}
}
return maxPFact;
}
console.log(largestPrimeFactor(124)); // 2 x 2 x 31
console.log(largestPrimeFactor(288)); // 2 x 2 x 2 x 2 x 2 x 3 x 3
console.log(largestPrimeFactor(1288)); // 2 x 2 x 2 x 7 x 23
console.log(largestPrimeFactor(100000000)); // 2, 2, 2, 2, 2, 2, 2, 2, 5, 5, 5, 5, 5, 5, 5, 5
/*
run:
31
3
23
5
*/