// <p>The prime factors of $13195$ are $5, 7, 13$ and $29$.</p>
// <p>What is the largest prime factor of the number $600851475143$?</p>
fn largest_prime_factor(n) {
var num = n;
var largest = 1;
// Handle factor 2
while num % 2 == 0 {
largest = 2;
num = num / 2;
}
// Handle odd factors from 3 onwards
var factor = 3;
while factor * factor <= num {
while num % factor == 0 {
largest = factor;
num = num / factor;
}
factor += 2;
}
// If num is still greater than 1, then it's a prime
if num > 1 {
largest = num;
}
largest
}
// Test with the example
var test_result = largest_prime_factor(13195);
assert(test_result == 29);
// Solve the actual problem
var result = largest_prime_factor(600851475143);
print("The largest prime factor of 600851475143 is: ${result}");
assert(result == 6857);