Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
|
|
@ -0,0 +1,16 @@
|
|||
var onmessage = function(event) {
|
||||
postMessage({"n" : event.data.n,
|
||||
"factors" : factor(event.data.n),
|
||||
"id" : event.data.id});
|
||||
};
|
||||
|
||||
function factor(n) {
|
||||
var factors = [];
|
||||
for(p = 2; p <= n; p++) {
|
||||
if((n % p) == 0) {
|
||||
factors[factors.length] = p;
|
||||
n /= p;
|
||||
}
|
||||
}
|
||||
return factors;
|
||||
}
|
||||
|
|
@ -0,0 +1,38 @@
|
|||
var numbers = [12757923, 12878611, 12757923, 15808973, 15780709, 197622519];
|
||||
var workers = [];
|
||||
var worker_count = 0;
|
||||
|
||||
var results = [];
|
||||
|
||||
for(var i = 0; i < numbers.length; i++) {
|
||||
worker_count++;
|
||||
workers[i] = new Worker("parallel_worker.js");
|
||||
workers[i].onmessage = accumulate;
|
||||
workers[i].postMessage({n: numbers[i], id: i});
|
||||
}
|
||||
|
||||
function accumulate(event) {
|
||||
n = event.data.n;
|
||||
factors = event.data.factors;
|
||||
id = event.data.id;
|
||||
console.log(n + " : " + factors);
|
||||
results[id] = {n:n, factors:factors};
|
||||
// Cleanup - kill the worker and countdown until all work is done
|
||||
workers[id].terminate();
|
||||
worker_count--;
|
||||
if(worker_count == 0)
|
||||
reduce();
|
||||
}
|
||||
|
||||
function reduce() {
|
||||
answer = 0;
|
||||
for(i = 1; i < results.length; i++) {
|
||||
min = results[i].factors[0];
|
||||
largest_min = results[answer].factors[0];
|
||||
if(min > largest_min)
|
||||
answer = i;
|
||||
}
|
||||
n = results[answer].n;
|
||||
factors = results[answer].factors;
|
||||
console.log("The number with the relatively largest factors is: " + n + " : " + factors);
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue