-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathscript.js
More file actions
91 lines (78 loc) · 2.44 KB
/
script.js
File metadata and controls
91 lines (78 loc) · 2.44 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
$(document).ready(()=>{
let arr=[];
for(let i=0;i<=400;i++)
arr.push(1);
arr[0]=0;
arr[1]=0;
let height=$(window).innerHeight();
let width=$(window).innerWidth();
function setGrid(){
$("#table").html('');
for(let i=0;i<20;i++){
let tr=$(document.createElement('tr'));
for(let j=0;j<20;j++){
let td=$(document.createElement('td'));
$(td).attr('id',20*i+j+1);
$(td).attr('height',height/20);
$(td).attr('width',width/20);
$(td).text(20*i + j+1);
$(tr).append(td);
}
$("#table").append(tr);
}
}
function setPrime(id){
$("#"+id).css({"background-color":"green"})
}
function setNonPrime(id){
$("#"+id).css({"background-color":"red"});
}
// function run(i){
// if(i>20)
// return 0;
// pick(i);
// setTimeout(()=>{run(i+1)},2000)
// }
function setNonPrimePromise(arr2){
if(arr2[0]<=400){
return new Promise((resolve,reject)=>{
arr[arr2[0]]=0;
setNonPrime(arr2[0]);
setTimeout(() => {
resolve(arr2)
}, 100);
}).then((arr2)=>{
arr2[0]+=arr2[1];
setNonPrimePromise(arr2);
})
}
else setPrimePromise(arr2[1]+1)
}
// setNonPrimePromise([4,2]);
function setPrimePromise(i){
if(i<=400 && arr[i]){
return new Promise((resolve,reject)=>{
$("#step").html('Step : '+ i +' is still white so it is prime and set to green ,all its multiple set to red');
$("#prime").append(' '+i+',')
setPrime(i);
setTimeout(()=>{
setNonPrimePromise([i+i,i])},500)
})
}
else if(i<=400){
$("#step").html('Step : '+ i +' is red so it is non-prime');
setTimeout(()=>{setPrimePromise(i+1)},1000);
}
}
$("#start").click(()=>{
setNonPrime(1);
$("#start").attr('disabled',true);
$("#step").html('Step : 1 is non prime it is set red');
$("#prime").html('Prime : ')
setTimeout(()=>{setPrimePromise(2);},1000);
})
$("#reset").click(()=>{
location.reload(true);
})
setGrid();
})