/* The prime factors of 13195 are 5, 7, 13 and 29.

            What is the largest prime factor of the number 600851475143 ? */

            // Solution
            // To find the largest prime factor of a number without using brute force, 
            // 1. start by finding the smallest prime factor
            // 2. take the initial number and divide it by the smallest prime factor, resulting in a multiple
            // 3. If the resulting multiple is not equal to 1, then the 'number' is not the largest prime number
            // 4. Recursively call the function until the resulting multiple is equal to 1. The 'number' will be the largest prime factor.

            function largestPrimeFactor(number) {
                "use strict";
                var smallestFactor = 0,
                    i = 1,
                    result = 0;

                // Step #1
                for (i; i <= number; i += 1) {
                    if (number % i === 0 && i !== 1) {
                        smallestFactor = i;
                        break;
                    }
                }

                // Step #2
                result = number / smallestFactor;
                if (result === 1) {
                    return number; // Step #4
                }

                // Step #3
                return largestPrimeFactor(result);
            }

            console.log(largestPrimeFactor(13195)); // Output: 29
            console.log(largestPrimeFactor(600851475143)); // Output: 6857