Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions algorithm/category.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,12 @@
"bridges": "Find-Bridges"
}
},
"number_theory": {
"name": "Number Theory",
"list": {
"seive_of_erathrones": "Seive of Erathrones"
}
},
"cryptography": {
"name": "Cryptography",
"list": {
Expand Down
16 changes: 16 additions & 0 deletions algorithm/number_theory/seive_of_erathrones/basic/code.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
logger._print("1 is not prime");
tracer._select(0)._wait();
for(var i=2;i<=length;i++) {
if(b[i]===0) {
logger._print(i+" is not marked, so it is prime");
// a[i-1] is prime mark by red indicators
tracer._notify(i-1)._wait();
for(var j=i+i;j<=length;j+=i) {
b[j]=1; // a[j-1] is not prime, mark by blue indicators
logger._print(j+" is a multiple of "+i+" so it is marked as composite" );
tracer._select(j-1)._wait();
}
tracer._denotify(i-1);
}
}
logger._print("The unmarked numbers are the prime numbers from 1 to "+length);
10 changes: 10 additions & 0 deletions algorithm/number_theory/seive_of_erathrones/basic/data.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
var tracer = new Array1DTracer('Seive');
length = 30;
var a = [];
var b = [];
for (var i=1;i<=length;i++) {
a.push(i);
b.push(0);
}
tracer._setData(a);
var logger = new LogTracer();
13 changes: 13 additions & 0 deletions algorithm/number_theory/seive_of_erathrones/desc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"Seive of Erathrones": "Finding all prime numbers upto a given range.",
"Complexity": {
"time": "O(n(log n)(log log n))",
"space": "O(n<sup>1/2</sup>)"
},
"References": [
"<a href='https://en.wikipedia.org/wiki/Sieve_of_Eratosthenes'>Wikipedia</a>"
],
"files": {
"basic": "Seive of Erathrones"
}
}