tasks a-s

This commit is contained in:
Ingy döt Net 2013-04-10 23:57:08 -07:00
parent 47bf37c096
commit b83f433714
12433 changed files with 156208 additions and 123 deletions

View file

@ -0,0 +1,41 @@
function run_factorize(n) {
if (n <= 3)
return [n];
var ans = [];
var done = false;
while (!done)
{
if (n%2 === 0){
ans.push(2);
n /= 2;
continue;
}
if (n%3 === 0){
ans.push(3);
n /= 3;
continue;
}
if ( n === 1)
return ans;
var sr = Math.sqrt(n);
done = true;
// try to divide the checked number by all numbers till its square root.
for (var i=6; i<=sr; i+=6){
if (n%(i-1) === 0){ // is n divisible by i-1?
ans.push( (i-1) );
n /= (i-1);
done = false;
break;
}
if (n%(i+1) === 0){ // is n divisible by i+1?
ans.push( (i+1) );
n /= (i+1);
done = false;
break;
}
}
}
ans.push( n );
return ans;
}