Skip to content

Instantly share code, notes, and snippets.

@kenany
Created August 23, 2013 02:29
Show Gist options
  • Select an option

  • Save kenany/6314962 to your computer and use it in GitHub Desktop.

Select an option

Save kenany/6314962 to your computer and use it in GitHub Desktop.
least factor with switch-catch
function leastFactor(n) {
switch (false) {
case !(n === 0):
return 0;
case !(n % 1 || n * n < 2):
return 1;
case !(n % 2 === 0):
return 2;
case !(n % 3 === 0):
return 3;
case !(n % 5 === 0):
return 5;
}
var m = Math.sqrt(n);
for (var i = 7; i <= m; i += 30) {
switch (false) {
case !(n % i === 0):
return i;
case !(n % (i + 4) === 0):
return i + 4;
case !(n % (i + 6) === 0):
return i + 6;
case !(n % (i + 10) === 0):
return i + 10;
case !(n % (i + 12) === 0):
return i + 12;
case !(n % (i + 16) === 0):
return i + 16;
case !(n % (i + 22) === 0):
return i + 22;
case !(n % (i + 24) === 0):
return i + 24;
}
}
return n;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment