Project Euler Problem #35

JavaScript

var prime = {};
prime.isPrime = function(num) {
    num = (num > 0) ? num : num * -1;
    return factors.getFactors(num).length <= 2;
}; //Checks if the provided number is prime
var factors = {};
factors.getFactors = function(number) {
    var factors = [];

    var possibleFactor = 1;
    var sqrt = Math.sqrt(number);
    while (possibleFactor <= sqrt) {
        if (number % possibleFactor == 0) {
            factors[factors.length] = possibleFactor;

            var otherPossibleFactor = number / possibleFactor;
            if (otherPossibleFactor > possibleFactor) {
                factors[factors.length] = otherPossibleFactor;
            }
        }
        possibleFactor++;
    }

    return factors;
}; //End of factors.getFactors function
var bigNumber = {};
bigNumber.createFromNumber = function(number) {
    var bigNum = [number];
    bigNumber.rebalanceDigitArray(bigNum);
    return bigNum;
};
bigNumber.rebalanceDigitArray = function(digits, index) {
    index = index || 0;
    var digit = digits[index];
    while (digit > 9) {
        //Update the current index
        digits[index] = digit % 10;

        //Update the next index
        index++;
        digits[index] = digit = (digits[index] || 0) + ((digit - digit % 10) / 10);
    }
}; //End of bigNumber.rebalanceDigitArray function
//---------------------
/**
 * Gets the circular primes for numbers below/including the specified number of digits.
 */
var getCircularPrimes = function(numDigits) {
    var circularPrimes;
    if (numDigits < 1) {
        circularPrimes = {};
    } else if (numDigits == 1) {
        circularPrimes = {
            '2': true,
            '3': true,
            '5': true,
            '7': true
        };
    } else {
        var circularPrimes = getCircularPrimes(numDigits - 1);

        var digits = [];
        for (var i = 0; i < numDigits; i++) {
            digits[i] = 1;
        }

        var continueLoop = true;
        while (continueLoop) {
            var...