Skip to content

Instantly share code, notes, and snippets.

@thomas4g
Created March 11, 2012 02:59
Show Gist options
  • Save thomas4g/2014767 to your computer and use it in GitHub Desktop.
Save thomas4g/2014767 to your computer and use it in GitHub Desktop.
Looping vs. Recursion
// solve(num) with isPrime(num)
// approx. time to solve for 600 trillion: several hours
function solve(num) {
var i = num - 1, result = num;
for(;i>1;i--)
{
if(num%i === 0) {
if(isPrime(i))
{
result = i;
break;
}
}
}
return result;
}
function isPrime(num) {
var i=2,
result = true;
for(;i<Math.ceil(num/2);i++) {
if(num%i === 0) {
result = false;
break;
}
}
return result;
}
/*----------------------------------------------------------*/
// factor with recursion
// time to solve < .5s
function factor(num) {
var i = 2, lim = Math.ceil(num/2), result=num;
for(;i<lim;i++) {
if(num%i === 0) {
var p=num/i;
if(p=factor(p)) {
result = p;
break;
}
}
}
return result;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment