Assignment 6

Prime Numbers

by Taylor Zimmerman

HTML

<html>
<fieldset>
<h4>
Enter the limit or highest number in the list of prime numbers.
</h4>
<body>
<input type="number" value= 10 id="userEntry">
<input type="button" value="Enter limit / Create Q1" onclick="AddQ1()">
<input type="button" value="Apply Sieve of Eratosthenes" onclick="SieveOfEratosthenes()">
<br>
<br>
<div id="output">
</div>
<div id="output2">
</div>
</body>
</fieldset>
</html>

JavaScript

var str;
var Node = function(_content){
	this.next = null;
  this.prev = null;
  this.content = _content;
  return this;
}
var Queue = function(_content){
	this.first = null;
  this.last = null;
  this.length = 0;
  return this;
}
// enqueue to back of the line
Queue.prototype.enqueue = function(_content){
	 var addedNode = new Node(_content);
  addedNode.content = _content;
  if (this.first == null) {
    this.first = addedNode;
    this.last = this.first;
    this.length++;
    return this;
  } else if (this.first == this.last) {
    this.last = addedNode;
    this.first.next = this.last;
    this.last.prev = this.front;
    this.length++;
    return this;
  } else {
    this.last.next = addedNode;
    addedNode.prev = this.last;
    this.last = addedNode;
    this.length++;
    return this;
  }
}
// dequeue off the front of the list
Queue.prototype.dequeue = function(){
  if (this.first == this.last) {
  	var X = this.first;
    this.first = null;
    this.last = null;
    this.length = 0;
    return X;
  } else {
    var X = this.first;
    this.first = this.first.next;
    this.first.prev = null;
    this.length--;
    return X;
  	}
  
}
Queue.prototype.toString = function(){
	var node = this.first;
    str = " ";
    while(node != null){
    	str += node.content + "  " ;
      node = node.next;
      }
      return str;
}

var Q1 = new Queue();
var Q2 = new Queue();

function AddQ1() {
  var userEntry = document.getElementById('userEntry').value;
  for (var i = 2; i <= userEntry; i++) {
    Q1.enqueue(i);
  }
  document.getElementById("output").innerHTML = Q1.toString();

}

function SieveOfEratosthenes() {
   var count = 0;
  while (Q1.first != null) {
    var size = Q1.length;
    var prime = Q1.dequeue();
    Q2.enqueue(prime.content);
    for (var i = 1; i < size; i++) {
      var deleteNode = Q1.dequeue();
      if (parseInt(deleteNode.content) % parseInt(prime.content) != 0) {
        Q1.enqueue(deleteNode.content);
      }
    }
    count++;
   ...